diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -1,20 +1,31 @@
 # Amazon Machine Learning SDK
 
-> _Warning:_ This is an experimental preview release which is still under heavy development and not intended for public consumption, _caveat emptor_!
-
+* [Version](#version)
 * [Description](#description)
 * [Contribute](#contribute)
 * [Licence](#licence)
 
+
+## Version
+
+`1.0.0`
+
+
 ## Description
 
-Amazon Machine Learning (Amazon ML) is a robust machine learning platform
-that allows software developers to build and train predictive applications
-and host those applications in a scalable AWS cloud solution.
+Definition of the public APIs exposed by Amazon Machine Learning
 
 Documentation is available via [Hackage](http://hackage.haskell.org/package/amazonka-ml)
 and the [AWS API Reference](http://docs.aws.amazon.com/machine-learning/latest/APIReference/Welcome.html).
 
+The types from this library are intended to be used with [amazonka](http://hackage.haskell.org/package/amazonka),
+which provides mechanisms for specifying AuthN/AuthZ information and sending requests.
+
+Use of lenses is required for constructing and manipulating types.
+This is due to the amount of nesting of AWS types and transparency regarding
+de/serialisation into more palatable Haskell values.
+The provided lenses should be compatible with any of the major lens libraries
+[lens](http://hackage.haskell.org/package/lens) or [lens-family-core](http://hackage.haskell.org/package/lens-family-core).
 
 ## Contribute
 
diff --git a/amazonka-ml.cabal b/amazonka-ml.cabal
--- a/amazonka-ml.cabal
+++ b/amazonka-ml.cabal
@@ -1,27 +1,33 @@
 name:                  amazonka-ml
-version:               0.3.6
+version:               1.0.0
 synopsis:              Amazon Machine Learning SDK.
 homepage:              https://github.com/brendanhay/amazonka
 license:               OtherLicense
 license-file:          LICENSE
 author:                Brendan Hay
 maintainer:            Brendan Hay <brendan.g.hay@gmail.com>
-copyright:             Copyright (c) 2013-2014 Brendan Hay
+copyright:             Copyright (c) 2013-2015 Brendan Hay
 category:              Network, AWS, Cloud, Distributed Computing
 build-type:            Simple
 extra-source-files:    README.md
 cabal-version:         >= 1.10
 
 description:
-    Amazon Machine Learning (Amazon ML) is a robust machine learning platform
-    that allows software developers to build and train predictive applications
-    and host those applications in a scalable AWS cloud solution.
-
+    Definition of the public APIs exposed by Amazon Machine Learning
     .
-    /See:/ <http://docs.aws.amazon.com/machine-learning/latest/APIReference/Welcome.html AWS API Reference>
+    The types from this library are intended to be used with
+    <http://hackage.haskell.org/package/amazonka amazonka>, which provides
+    mechanisms for specifying AuthN/AuthZ information and sending requests.
     .
-    /Warning:/ This is an experimental preview release which is still under
-    heavy development and not intended for public consumption, caveat emptor!
+    Use of lenses is required for constructing and manipulating types.
+    This is due to the amount of nesting of AWS types and transparency regarding
+    de/serialisation into more palatable Haskell values.
+    The provided lenses should be compatible with any of the major lens libraries
+    such as <http://hackage.haskell.org/package/lens lens> or
+    <http://hackage.haskell.org/package/lens-family-core lens-family-core>.
+    .
+    See "Network.AWS.MachineLearning" and the <http://docs.aws.amazon.com/machine-learning/latest/APIReference/Welcome.html AWS API Reference>
+    to get started.
 
 source-repository head
     type:     git
@@ -61,9 +67,40 @@
         , Network.AWS.MachineLearning.UpdateDataSource
         , Network.AWS.MachineLearning.UpdateEvaluation
         , Network.AWS.MachineLearning.UpdateMLModel
+        , Network.AWS.MachineLearning.Waiters
 
     other-modules:
+          Network.AWS.MachineLearning.Types.Product
+        , Network.AWS.MachineLearning.Types.Sum
 
     build-depends:
-          amazonka-core == 0.3.6.*
+          amazonka-core == 1.0.0.*
         , base          >= 4.7     && < 5
+
+test-suite amazonka-ml-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.MachineLearning
+        , Test.AWS.Gen.MachineLearning
+        , Test.AWS.MachineLearning.Internal
+
+    build-depends:
+          amazonka-core == 1.0.0
+        , amazonka-test == 1.0.0
+        , amazonka-ml == 1.0.0
+        , base
+        , bytestring
+        , lens
+        , tasty
+        , tasty-hunit
+        , text
+        , time
+        , unordered-containers
diff --git a/gen/Network/AWS/MachineLearning.hs b/gen/Network/AWS/MachineLearning.hs
--- a/gen/Network/AWS/MachineLearning.hs
+++ b/gen/Network/AWS/MachineLearning.hs
@@ -1,70 +1,390 @@
+{-# 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.MachineLearning
--- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>
--- License     : This Source Code Form is subject to the terms of
---               the Mozilla Public License, v. 2.0.
---               A copy of the MPL can be found in the LICENSE file or
---               you can obtain it at http://mozilla.org/MPL/2.0/.
+-- Copyright   : (c) 2013-2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
--- Stability   : experimental
+-- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
--- Derived from AWS service descriptions, licensed under Apache 2.0.
-
--- | Amazon Machine Learning (Amazon ML) is a robust machine learning platform
--- that allows software developers to build and train predictive applications
--- and host those applications in a scalable AWS cloud solution.
+-- Definition of the public APIs exposed by Amazon Machine Learning
+--
+-- /See:/ <http://docs.aws.amazon.com/machine-learning/latest/APIReference/Welcome.html AWS API Reference>
 module Network.AWS.MachineLearning
-    ( module Network.AWS.MachineLearning.CreateBatchPrediction
-    , module Network.AWS.MachineLearning.CreateDataSourceFromRDS
+    (
+    -- * Service
+      MachineLearning
+
+    -- * Errors
+    -- $errors
+
+    -- ** InternalServerException
+    , _InternalServerException
+
+    -- ** InvalidInputException
+    , _InvalidInputException
+
+    -- ** IdempotentParameterMismatchException
+    , _IdempotentParameterMismatchException
+
+    -- ** PredictorNotMountedException
+    , _PredictorNotMountedException
+
+    -- ** ResourceNotFoundException
+    , _ResourceNotFoundException
+
+    -- ** LimitExceededException
+    , _LimitExceededException
+
+    -- * Waiters
+    -- $waiters
+
+    -- ** MLModelAvailable
+    , mLModelAvailable
+
+    -- ** BatchPredictionAvailable
+    , batchPredictionAvailable
+
+    -- ** DataSourceAvailable
+    , dataSourceAvailable
+
+    -- ** EvaluationAvailable
+    , evaluationAvailable
+
+    -- * Operations
+    -- $operations
+
+    -- ** DeleteDataSource
+    , module Network.AWS.MachineLearning.DeleteDataSource
+
+    -- ** UpdateDataSource
+    , module Network.AWS.MachineLearning.UpdateDataSource
+
+    -- ** CreateDataSourceFromRedshift
     , module Network.AWS.MachineLearning.CreateDataSourceFromRedshift
+
+    -- ** CreateDataSourceFromS
     , module Network.AWS.MachineLearning.CreateDataSourceFromS
-    , module Network.AWS.MachineLearning.CreateEvaluation
+
+    -- ** CreateMLModel
     , module Network.AWS.MachineLearning.CreateMLModel
-    , module Network.AWS.MachineLearning.CreateRealtimeEndpoint
+
+    -- ** DeleteBatchPrediction
     , module Network.AWS.MachineLearning.DeleteBatchPrediction
-    , module Network.AWS.MachineLearning.DeleteDataSource
-    , module Network.AWS.MachineLearning.DeleteEvaluation
+
+    -- ** UpdateBatchPrediction
+    , module Network.AWS.MachineLearning.UpdateBatchPrediction
+
+    -- ** GetMLModel
+    , module Network.AWS.MachineLearning.GetMLModel
+
+    -- ** GetDataSource
+    , module Network.AWS.MachineLearning.GetDataSource
+
+    -- ** DeleteMLModel
     , module Network.AWS.MachineLearning.DeleteMLModel
-    , module Network.AWS.MachineLearning.DeleteRealtimeEndpoint
+
+    -- ** UpdateMLModel
+    , module Network.AWS.MachineLearning.UpdateMLModel
+
+    -- ** DescribeBatchPredictions (Paginated)
     , module Network.AWS.MachineLearning.DescribeBatchPredictions
-    , module Network.AWS.MachineLearning.DescribeDataSources
-    , module Network.AWS.MachineLearning.DescribeEvaluations
-    , module Network.AWS.MachineLearning.DescribeMLModels
+
+    -- ** UpdateEvaluation
+    , module Network.AWS.MachineLearning.UpdateEvaluation
+
+    -- ** DeleteEvaluation
+    , module Network.AWS.MachineLearning.DeleteEvaluation
+
+    -- ** GetBatchPrediction
     , module Network.AWS.MachineLearning.GetBatchPrediction
-    , module Network.AWS.MachineLearning.GetDataSource
-    , module Network.AWS.MachineLearning.GetEvaluation
-    , module Network.AWS.MachineLearning.GetMLModel
+
+    -- ** CreateEvaluation
+    , module Network.AWS.MachineLearning.CreateEvaluation
+
+    -- ** CreateDataSourceFromRDS
+    , module Network.AWS.MachineLearning.CreateDataSourceFromRDS
+
+    -- ** CreateBatchPrediction
+    , module Network.AWS.MachineLearning.CreateBatchPrediction
+
+    -- ** Predict
     , module Network.AWS.MachineLearning.Predict
-    , module Network.AWS.MachineLearning.Types
-    , module Network.AWS.MachineLearning.UpdateBatchPrediction
-    , module Network.AWS.MachineLearning.UpdateDataSource
-    , module Network.AWS.MachineLearning.UpdateEvaluation
-    , module Network.AWS.MachineLearning.UpdateMLModel
+
+    -- ** DeleteRealtimeEndpoint
+    , module Network.AWS.MachineLearning.DeleteRealtimeEndpoint
+
+    -- ** DescribeEvaluations (Paginated)
+    , module Network.AWS.MachineLearning.DescribeEvaluations
+
+    -- ** GetEvaluation
+    , module Network.AWS.MachineLearning.GetEvaluation
+
+    -- ** CreateRealtimeEndpoint
+    , module Network.AWS.MachineLearning.CreateRealtimeEndpoint
+
+    -- ** DescribeMLModels (Paginated)
+    , module Network.AWS.MachineLearning.DescribeMLModels
+
+    -- ** DescribeDataSources (Paginated)
+    , module Network.AWS.MachineLearning.DescribeDataSources
+
+    -- * Types
+
+    -- ** Algorithm
+    , Algorithm (..)
+
+    -- ** BatchPredictionFilterVariable
+    , BatchPredictionFilterVariable (..)
+
+    -- ** DataSourceFilterVariable
+    , DataSourceFilterVariable (..)
+
+    -- ** DetailsAttributes
+    , DetailsAttributes (..)
+
+    -- ** EntityStatus
+    , EntityStatus (..)
+
+    -- ** EvaluationFilterVariable
+    , EvaluationFilterVariable (..)
+
+    -- ** MLModelFilterVariable
+    , MLModelFilterVariable (..)
+
+    -- ** MLModelType
+    , MLModelType (..)
+
+    -- ** RealtimeEndpointStatus
+    , RealtimeEndpointStatus (..)
+
+    -- ** SortOrder
+    , SortOrder (..)
+
+    -- ** BatchPrediction
+    , BatchPrediction
+    , batchPrediction
+    , bpStatus
+    , bpLastUpdatedAt
+    , bpCreatedAt
+    , bpInputDataLocationS3
+    , bpMLModelId
+    , bpBatchPredictionDataSourceId
+    , bpBatchPredictionId
+    , bpName
+    , bpCreatedByIAMUser
+    , bpMessage
+    , bpOutputURI
+
+    -- ** DataSource
+    , DataSource
+    , dataSource
+    , dsStatus
+    , dsNumberOfFiles
+    , dsLastUpdatedAt
+    , dsCreatedAt
+    , dsRDSMetadata
+    , dsDataSourceId
+    , dsDataSizeInBytes
+    , dsName
+    , dsCreatedByIAMUser
+    , dsDataLocationS3
+    , dsComputeStatistics
+    , dsMessage
+    , dsRedshiftMetadata
+    , dsRoleARN
+    , dsDataRearrangement
+
+    -- ** Evaluation
+    , Evaluation
+    , evaluation
+    , eStatus
+    , ePerformanceMetrics
+    , eLastUpdatedAt
+    , eCreatedAt
+    , eInputDataLocationS3
+    , eMLModelId
+    , eName
+    , eCreatedByIAMUser
+    , eMessage
+    , eEvaluationId
+    , eEvaluationDataSourceId
+
+    -- ** MLModel
+    , MLModel
+    , mLModel
+    , mlmStatus
+    , mlmTrainingParameters
+    , mlmLastUpdatedAt
+    , mlmCreatedAt
+    , mlmScoreThresholdLastUpdatedAt
+    , mlmInputDataLocationS3
+    , mlmSizeInBytes
+    , mlmMLModelId
+    , mlmScoreThreshold
+    , mlmName
+    , mlmAlgorithm
+    , mlmCreatedByIAMUser
+    , mlmEndpointInfo
+    , mlmTrainingDataSourceId
+    , mlmMessage
+    , mlmMLModelType
+
+    -- ** PerformanceMetrics
+    , PerformanceMetrics
+    , performanceMetrics
+    , pmProperties
+
+    -- ** Prediction
+    , Prediction
+    , prediction
+    , pPredictedValue
+    , pPredictedLabel
+    , pPredictedScores
+    , pDetails
+
+    -- ** RDSDataSpec
+    , RDSDataSpec
+    , rdsDataSpec
+    , rdsdsDataSchemaURI
+    , rdsdsDataSchema
+    , rdsdsDataRearrangement
+    , rdsdsDatabaseInformation
+    , rdsdsSelectSqlQuery
+    , rdsdsDatabaseCredentials
+    , rdsdsS3StagingLocation
+    , rdsdsResourceRole
+    , rdsdsServiceRole
+    , rdsdsSubnetId
+    , rdsdsSecurityGroupIds
+
+    -- ** RDSDatabase
+    , RDSDatabase
+    , rdsDatabase
+    , rdsdInstanceIdentifier
+    , rdsdDatabaseName
+
+    -- ** RDSDatabaseCredentials
+    , RDSDatabaseCredentials
+    , rdsDatabaseCredentials
+    , rdsdcUsername
+    , rdsdcPassword
+
+    -- ** RDSMetadata
+    , RDSMetadata
+    , rdsMetadata
+    , rmSelectSqlQuery
+    , rmDataPipelineId
+    , rmDatabase
+    , rmDatabaseUserName
+    , rmResourceRole
+    , rmServiceRole
+
+    -- ** RealtimeEndpointInfo
+    , RealtimeEndpointInfo
+    , realtimeEndpointInfo
+    , reiCreatedAt
+    , reiEndpointURL
+    , reiEndpointStatus
+    , reiPeakRequestsPerSecond
+
+    -- ** RedshiftDataSpec
+    , RedshiftDataSpec
+    , redshiftDataSpec
+    , rDataSchemaURI
+    , rDataSchema
+    , rDataRearrangement
+    , rDatabaseInformation
+    , rSelectSqlQuery
+    , rDatabaseCredentials
+    , rS3StagingLocation
+
+    -- ** RedshiftDatabase
+    , RedshiftDatabase
+    , redshiftDatabase
+    , rdDatabaseName
+    , rdClusterIdentifier
+
+    -- ** RedshiftDatabaseCredentials
+    , RedshiftDatabaseCredentials
+    , redshiftDatabaseCredentials
+    , rdcUsername
+    , rdcPassword
+
+    -- ** RedshiftMetadata
+    , RedshiftMetadata
+    , redshiftMetadata
+    , redSelectSqlQuery
+    , redRedshiftDatabase
+    , redDatabaseUserName
+
+    -- ** S3DataSpec
+    , S3DataSpec
+    , s3DataSpec
+    , sdsDataSchema
+    , sdsDataSchemaLocationS3
+    , sdsDataRearrangement
+    , sdsDataLocationS3
     ) where
 
-import Network.AWS.MachineLearning.CreateBatchPrediction
-import Network.AWS.MachineLearning.CreateDataSourceFromRDS
-import Network.AWS.MachineLearning.CreateDataSourceFromRedshift
-import Network.AWS.MachineLearning.CreateDataSourceFromS
-import Network.AWS.MachineLearning.CreateEvaluation
-import Network.AWS.MachineLearning.CreateMLModel
-import Network.AWS.MachineLearning.CreateRealtimeEndpoint
-import Network.AWS.MachineLearning.DeleteBatchPrediction
-import Network.AWS.MachineLearning.DeleteDataSource
-import Network.AWS.MachineLearning.DeleteEvaluation
-import Network.AWS.MachineLearning.DeleteMLModel
-import Network.AWS.MachineLearning.DeleteRealtimeEndpoint
-import Network.AWS.MachineLearning.DescribeBatchPredictions
-import Network.AWS.MachineLearning.DescribeDataSources
-import Network.AWS.MachineLearning.DescribeEvaluations
-import Network.AWS.MachineLearning.DescribeMLModels
-import Network.AWS.MachineLearning.GetBatchPrediction
-import Network.AWS.MachineLearning.GetDataSource
-import Network.AWS.MachineLearning.GetEvaluation
-import Network.AWS.MachineLearning.GetMLModel
-import Network.AWS.MachineLearning.Predict
-import Network.AWS.MachineLearning.Types
-import Network.AWS.MachineLearning.UpdateBatchPrediction
-import Network.AWS.MachineLearning.UpdateDataSource
-import Network.AWS.MachineLearning.UpdateEvaluation
-import Network.AWS.MachineLearning.UpdateMLModel
+import           Network.AWS.MachineLearning.CreateBatchPrediction
+import           Network.AWS.MachineLearning.CreateDataSourceFromRDS
+import           Network.AWS.MachineLearning.CreateDataSourceFromRedshift
+import           Network.AWS.MachineLearning.CreateDataSourceFromS
+import           Network.AWS.MachineLearning.CreateEvaluation
+import           Network.AWS.MachineLearning.CreateMLModel
+import           Network.AWS.MachineLearning.CreateRealtimeEndpoint
+import           Network.AWS.MachineLearning.DeleteBatchPrediction
+import           Network.AWS.MachineLearning.DeleteDataSource
+import           Network.AWS.MachineLearning.DeleteEvaluation
+import           Network.AWS.MachineLearning.DeleteMLModel
+import           Network.AWS.MachineLearning.DeleteRealtimeEndpoint
+import           Network.AWS.MachineLearning.DescribeBatchPredictions
+import           Network.AWS.MachineLearning.DescribeDataSources
+import           Network.AWS.MachineLearning.DescribeEvaluations
+import           Network.AWS.MachineLearning.DescribeMLModels
+import           Network.AWS.MachineLearning.GetBatchPrediction
+import           Network.AWS.MachineLearning.GetDataSource
+import           Network.AWS.MachineLearning.GetEvaluation
+import           Network.AWS.MachineLearning.GetMLModel
+import           Network.AWS.MachineLearning.Predict
+import           Network.AWS.MachineLearning.Types
+import           Network.AWS.MachineLearning.UpdateBatchPrediction
+import           Network.AWS.MachineLearning.UpdateDataSource
+import           Network.AWS.MachineLearning.UpdateEvaluation
+import           Network.AWS.MachineLearning.UpdateMLModel
+import           Network.AWS.MachineLearning.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 'MachineLearning'.
+-}
+
+{- $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/MachineLearning/CreateBatchPrediction.hs b/gen/Network/AWS/MachineLearning/CreateBatchPrediction.hs
--- a/gen/Network/AWS/MachineLearning/CreateBatchPrediction.hs
+++ b/gen/Network/AWS/MachineLearning/CreateBatchPrediction.hs
@@ -1,179 +1,205 @@
-{-# 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.MachineLearning.CreateBatchPrediction
--- 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.
-
--- | Generates predictions for a group of observations. The observations to
--- process exist in one or more data files referenced by a 'DataSource'. This
--- operation creates a new 'BatchPrediction', and uses an 'MLModel' and the data
--- files referenced by the 'DataSource' as information sources.
+-- Generates predictions for a group of observations. The observations to
+-- process exist in one or more data files referenced by a 'DataSource'.
+-- This operation creates a new 'BatchPrediction', and uses an 'MLModel'
+-- and the data files referenced by the 'DataSource' as information
+-- sources.
 --
--- 'CreateBatchPrediction' is an asynchronous operation. In response to 'CreateBatchPrediction', Amazon Machine Learning (Amazon ML) immediately returns and sets the 'BatchPrediction' status to 'PENDING'. After the 'BatchPrediction' completes, Amazon ML sets the
--- status to 'COMPLETED'.
+-- 'CreateBatchPrediction' is an asynchronous operation. In response to
+-- 'CreateBatchPrediction', Amazon Machine Learning (Amazon ML) immediately
+-- returns and sets the 'BatchPrediction' status to 'PENDING'. After the
+-- 'BatchPrediction' completes, Amazon ML sets the status to 'COMPLETED'.
 --
--- You can poll for status updates by using the 'GetBatchPrediction' operation
--- and checking the 'Status' parameter of the result. After the 'COMPLETED' status
--- appears, the results are available in the location specified by the 'OutputUri'
--- parameter.
+-- You can poll for status updates by using the GetBatchPrediction
+-- operation and checking the 'Status' parameter of the result. After the
+-- 'COMPLETED' status appears, the results are available in the location
+-- specified by the 'OutputUri' parameter.
 --
--- <http://http://docs.aws.amazon.com/machine-learning/latest/APIReference/API_CreateBatchPrediction.html>
+-- /See:/ <http://http://docs.aws.amazon.com/machine-learning/latest/APIReference/API_CreateBatchPrediction.html AWS API Reference> for CreateBatchPrediction.
 module Network.AWS.MachineLearning.CreateBatchPrediction
     (
-    -- * Request
-      CreateBatchPrediction
-    -- ** Request constructor
-    , createBatchPrediction
-    -- ** Request lenses
-    , cbpBatchPredictionDataSourceId
-    , cbpBatchPredictionId
+    -- * Creating a Request
+      createBatchPrediction
+    , CreateBatchPrediction
+    -- * Request Lenses
     , cbpBatchPredictionName
+    , cbpBatchPredictionId
     , cbpMLModelId
-    , cbpOutputUri
+    , cbpBatchPredictionDataSourceId
+    , cbpOutputURI
 
-    -- * Response
-    , CreateBatchPredictionResponse
-    -- ** Response constructor
+    -- * Destructuring the Response
     , createBatchPredictionResponse
-    -- ** Response lenses
-    , cbprBatchPredictionId
+    , CreateBatchPredictionResponse
+    -- * Response Lenses
+    , cbprsBatchPredictionId
+    , cbprsStatus
     ) where
 
-import Network.AWS.Data (Object)
-import Network.AWS.Prelude
-import Network.AWS.Request.JSON
-import Network.AWS.MachineLearning.Types
-import qualified GHC.Exts
+import           Network.AWS.MachineLearning.Types
+import           Network.AWS.MachineLearning.Types.Product
+import           Network.AWS.Prelude
+import           Network.AWS.Request
+import           Network.AWS.Response
 
-data CreateBatchPrediction = CreateBatchPrediction
-    { _cbpBatchPredictionDataSourceId :: Text
-    , _cbpBatchPredictionId           :: Text
-    , _cbpBatchPredictionName         :: Maybe Text
-    , _cbpMLModelId                   :: Text
-    , _cbpOutputUri                   :: Text
-    } deriving (Eq, Ord, Read, Show)
+-- | /See:/ 'createBatchPrediction' smart constructor.
+data CreateBatchPrediction = CreateBatchPrediction'
+    { _cbpBatchPredictionName         :: !(Maybe Text)
+    , _cbpBatchPredictionId           :: !Text
+    , _cbpMLModelId                   :: !Text
+    , _cbpBatchPredictionDataSourceId :: !Text
+    , _cbpOutputURI                   :: !Text
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
 
--- | 'CreateBatchPrediction' constructor.
---
--- The fields accessible through corresponding lenses are:
+-- | Creates a value of 'CreateBatchPrediction' with the minimum fields required to make a request.
 --
--- * 'cbpBatchPredictionDataSourceId' @::@ 'Text'
+-- Use one of the following lenses to modify other fields as desired:
 --
--- * 'cbpBatchPredictionId' @::@ 'Text'
+-- * 'cbpBatchPredictionName'
 --
--- * 'cbpBatchPredictionName' @::@ 'Maybe' 'Text'
+-- * 'cbpBatchPredictionId'
 --
--- * 'cbpMLModelId' @::@ 'Text'
+-- * 'cbpMLModelId'
 --
--- * 'cbpOutputUri' @::@ 'Text'
+-- * 'cbpBatchPredictionDataSourceId'
 --
-createBatchPrediction :: Text -- ^ 'cbpBatchPredictionId'
-                      -> Text -- ^ 'cbpMLModelId'
-                      -> Text -- ^ 'cbpBatchPredictionDataSourceId'
-                      -> Text -- ^ 'cbpOutputUri'
-                      -> CreateBatchPrediction
-createBatchPrediction p1 p2 p3 p4 = CreateBatchPrediction
-    { _cbpBatchPredictionId           = p1
-    , _cbpMLModelId                   = p2
-    , _cbpBatchPredictionDataSourceId = p3
-    , _cbpOutputUri                   = p4
-    , _cbpBatchPredictionName         = Nothing
+-- * 'cbpOutputURI'
+createBatchPrediction
+    :: Text -- ^ 'cbpBatchPredictionId'
+    -> Text -- ^ 'cbpMLModelId'
+    -> Text -- ^ 'cbpBatchPredictionDataSourceId'
+    -> Text -- ^ 'cbpOutputURI'
+    -> CreateBatchPrediction
+createBatchPrediction pBatchPredictionId_ pMLModelId_ pBatchPredictionDataSourceId_ pOutputURI_ =
+    CreateBatchPrediction'
+    { _cbpBatchPredictionName = Nothing
+    , _cbpBatchPredictionId = pBatchPredictionId_
+    , _cbpMLModelId = pMLModelId_
+    , _cbpBatchPredictionDataSourceId = pBatchPredictionDataSourceId_
+    , _cbpOutputURI = pOutputURI_
     }
 
--- | The ID of the 'DataSource' that points to the group of observations to predict.
-cbpBatchPredictionDataSourceId :: Lens' CreateBatchPrediction Text
-cbpBatchPredictionDataSourceId =
-    lens _cbpBatchPredictionDataSourceId
-        (\s a -> s { _cbpBatchPredictionDataSourceId = a })
+-- | A user-supplied name or description of the 'BatchPrediction'.
+-- 'BatchPredictionName' can only use the UTF-8 character set.
+cbpBatchPredictionName :: Lens' CreateBatchPrediction (Maybe Text)
+cbpBatchPredictionName = lens _cbpBatchPredictionName (\ s a -> s{_cbpBatchPredictionName = a});
 
 -- | A user-supplied ID that uniquely identifies the 'BatchPrediction'.
 cbpBatchPredictionId :: Lens' CreateBatchPrediction Text
-cbpBatchPredictionId =
-    lens _cbpBatchPredictionId (\s a -> s { _cbpBatchPredictionId = a })
-
--- | A user-supplied name or description of the 'BatchPrediction'. 'BatchPredictionName' can only use the UTF-8 character set.
-cbpBatchPredictionName :: Lens' CreateBatchPrediction (Maybe Text)
-cbpBatchPredictionName =
-    lens _cbpBatchPredictionName (\s a -> s { _cbpBatchPredictionName = a })
+cbpBatchPredictionId = lens _cbpBatchPredictionId (\ s a -> s{_cbpBatchPredictionId = a});
 
 -- | The ID of the 'MLModel' that will generate predictions for the group of
 -- observations.
 cbpMLModelId :: Lens' CreateBatchPrediction Text
-cbpMLModelId = lens _cbpMLModelId (\s a -> s { _cbpMLModelId = a })
+cbpMLModelId = lens _cbpMLModelId (\ s a -> s{_cbpMLModelId = a});
 
+-- | The ID of the 'DataSource' that points to the group of observations to
+-- predict.
+cbpBatchPredictionDataSourceId :: Lens' CreateBatchPrediction Text
+cbpBatchPredictionDataSourceId = lens _cbpBatchPredictionDataSourceId (\ s a -> s{_cbpBatchPredictionDataSourceId = a});
+
 -- | The location of an Amazon Simple Storage Service (Amazon S3) bucket or
--- directory to store the batch prediction results. The following substrings are
--- not allowed in the s3 key portion of the "outputURI" field: ':', '//', '/./',
--- '/../'.
+-- directory to store the batch prediction results. The following
+-- substrings are not allowed in the s3 key portion of the \"outputURI\"
+-- field: \':\', \'\/\/\', \'\/.\/\', \'\/..\/\'.
 --
--- Amazon ML needs permissions to store and retrieve the logs on your behalf.
--- For information about how to set permissions, see the <http://docs.aws.amazon.com/machine-learning/latest/dg Amazon Machine LearningDeveloper Guide>.
-cbpOutputUri :: Lens' CreateBatchPrediction Text
-cbpOutputUri = lens _cbpOutputUri (\s a -> s { _cbpOutputUri = a })
+-- Amazon ML needs permissions to store and retrieve the logs on your
+-- behalf. For information about how to set permissions, see the
+-- <http://docs.aws.amazon.com/machine-learning/latest/dg Amazon Machine Learning Developer Guide>.
+cbpOutputURI :: Lens' CreateBatchPrediction Text
+cbpOutputURI = lens _cbpOutputURI (\ s a -> s{_cbpOutputURI = a});
 
-newtype CreateBatchPredictionResponse = CreateBatchPredictionResponse
-    { _cbprBatchPredictionId :: Maybe Text
-    } deriving (Eq, Ord, Read, Show, Monoid)
+instance AWSRequest CreateBatchPrediction where
+        type Sv CreateBatchPrediction = MachineLearning
+        type Rs CreateBatchPrediction =
+             CreateBatchPredictionResponse
+        request = postJSON
+        response
+          = receiveJSON
+              (\ s h x ->
+                 CreateBatchPredictionResponse' <$>
+                   (x .?> "BatchPredictionId") <*> (pure (fromEnum s)))
 
--- | 'CreateBatchPredictionResponse' constructor.
---
--- The fields accessible through corresponding lenses are:
---
--- * 'cbprBatchPredictionId' @::@ 'Maybe' 'Text'
---
-createBatchPredictionResponse :: CreateBatchPredictionResponse
-createBatchPredictionResponse = CreateBatchPredictionResponse
-    { _cbprBatchPredictionId = Nothing
-    }
+instance ToHeaders CreateBatchPrediction where
+        toHeaders
+          = const
+              (mconcat
+                 ["X-Amz-Target" =#
+                    ("AmazonML_20141212.CreateBatchPrediction" ::
+                       ByteString),
+                  "Content-Type" =#
+                    ("application/x-amz-json-1.1" :: ByteString)])
 
--- | A user-supplied ID that uniquely identifies the 'BatchPrediction'. This value
--- is identical to the value of the 'BatchPredictionId' in the request.
-cbprBatchPredictionId :: Lens' CreateBatchPredictionResponse (Maybe Text)
-cbprBatchPredictionId =
-    lens _cbprBatchPredictionId (\s a -> s { _cbprBatchPredictionId = a })
+instance ToJSON CreateBatchPrediction where
+        toJSON CreateBatchPrediction'{..}
+          = object
+              ["BatchPredictionName" .= _cbpBatchPredictionName,
+               "BatchPredictionId" .= _cbpBatchPredictionId,
+               "MLModelId" .= _cbpMLModelId,
+               "BatchPredictionDataSourceId" .=
+                 _cbpBatchPredictionDataSourceId,
+               "OutputUri" .= _cbpOutputURI]
 
 instance ToPath CreateBatchPrediction where
-    toPath = const "/"
+        toPath = const "/"
 
 instance ToQuery CreateBatchPrediction where
-    toQuery = const mempty
-
-instance ToHeaders CreateBatchPrediction
+        toQuery = const mempty
 
-instance ToJSON CreateBatchPrediction where
-    toJSON CreateBatchPrediction{..} = object
-        [ "BatchPredictionId"           .= _cbpBatchPredictionId
-        , "BatchPredictionName"         .= _cbpBatchPredictionName
-        , "MLModelId"                   .= _cbpMLModelId
-        , "BatchPredictionDataSourceId" .= _cbpBatchPredictionDataSourceId
-        , "OutputUri"                   .= _cbpOutputUri
-        ]
+-- | Represents the output of a CreateBatchPrediction operation, and is an
+-- acknowledgement that Amazon ML received the request.
+--
+-- The CreateBatchPrediction operation is asynchronous. You can poll for
+-- status updates by using the GetBatchPrediction operation and checking
+-- the 'Status' parameter of the result.
+--
+-- /See:/ 'createBatchPredictionResponse' smart constructor.
+data CreateBatchPredictionResponse = CreateBatchPredictionResponse'
+    { _cbprsBatchPredictionId :: !(Maybe Text)
+    , _cbprsStatus            :: !Int
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
 
-instance AWSRequest CreateBatchPrediction where
-    type Sv CreateBatchPrediction = MachineLearning
-    type Rs CreateBatchPrediction = CreateBatchPredictionResponse
+-- | Creates a value of 'CreateBatchPredictionResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'cbprsBatchPredictionId'
+--
+-- * 'cbprsStatus'
+createBatchPredictionResponse
+    :: Int -- ^ 'cbprsStatus'
+    -> CreateBatchPredictionResponse
+createBatchPredictionResponse pStatus_ =
+    CreateBatchPredictionResponse'
+    { _cbprsBatchPredictionId = Nothing
+    , _cbprsStatus = pStatus_
+    }
 
-    request  = post "CreateBatchPrediction"
-    response = jsonResponse
+-- | A user-supplied ID that uniquely identifies the 'BatchPrediction'. This
+-- value is identical to the value of the 'BatchPredictionId' in the
+-- request.
+cbprsBatchPredictionId :: Lens' CreateBatchPredictionResponse (Maybe Text)
+cbprsBatchPredictionId = lens _cbprsBatchPredictionId (\ s a -> s{_cbprsBatchPredictionId = a});
 
-instance FromJSON CreateBatchPredictionResponse where
-    parseJSON = withObject "CreateBatchPredictionResponse" $ \o -> CreateBatchPredictionResponse
-        <$> o .:? "BatchPredictionId"
+-- | The response status code.
+cbprsStatus :: Lens' CreateBatchPredictionResponse Int
+cbprsStatus = lens _cbprsStatus (\ s a -> s{_cbprsStatus = a});
diff --git a/gen/Network/AWS/MachineLearning/CreateDataSourceFromRDS.hs b/gen/Network/AWS/MachineLearning/CreateDataSourceFromRDS.hs
--- a/gen/Network/AWS/MachineLearning/CreateDataSourceFromRDS.hs
+++ b/gen/Network/AWS/MachineLearning/CreateDataSourceFromRDS.hs
@@ -1,212 +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.MachineLearning.CreateDataSourceFromRDS
--- 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 'DataSource' object from an <http://aws.amazon.com/rds/  Amazon Relational Database Service>
--- (Amazon RDS). A 'DataSource' references data that can be used to perform 'CreateMLModel', 'CreateEvaluation', or 'CreateBatchPrediction' operations.
+-- Creates a 'DataSource' object from an
+-- <http://aws.amazon.com/rds/ Amazon Relational Database Service> (Amazon
+-- RDS). A 'DataSource' references data that can be used to perform
+-- CreateMLModel, CreateEvaluation, or CreateBatchPrediction operations.
 --
--- 'CreateDataSourceFromRDS' is an asynchronous operation. In response to 'CreateDataSourceFromRDS', Amazon Machine Learning (Amazon ML) immediately returns and sets the 'DataSource' status to 'PENDING'. After the 'DataSource' is created and ready for use, Amazon
--- ML sets the 'Status' parameter to 'COMPLETED'. 'DataSource' in 'COMPLETED' or 'PENDING'
--- status can only be used to perform 'CreateMLModel', 'CreateEvaluation', or 'CreateBatchPrediction' operations.
+-- 'CreateDataSourceFromRDS' is an asynchronous operation. In response to
+-- 'CreateDataSourceFromRDS', Amazon Machine Learning (Amazon ML)
+-- immediately returns and sets the 'DataSource' status to 'PENDING'. After
+-- the 'DataSource' is created and ready for use, Amazon ML sets the
+-- 'Status' parameter to 'COMPLETED'. 'DataSource' in 'COMPLETED' or
+-- 'PENDING' status can only be used to perform CreateMLModel,
+-- CreateEvaluation, or CreateBatchPrediction operations.
 --
--- If Amazon ML cannot accept the input source, it sets the 'Status' parameter
--- to 'FAILED' and includes an error message in the 'Message' attribute of the 'GetDataSource' operation response.
+-- If Amazon ML cannot accept the input source, it sets the 'Status'
+-- parameter to 'FAILED' and includes an error message in the 'Message'
+-- attribute of the GetDataSource operation response.
 --
--- <http://http://docs.aws.amazon.com/machine-learning/latest/APIReference/API_CreateDataSourceFromRDS.html>
+-- /See:/ <http://http://docs.aws.amazon.com/machine-learning/latest/APIReference/API_CreateDataSourceFromRDS.html AWS API Reference> for CreateDataSourceFromRDS.
 module Network.AWS.MachineLearning.CreateDataSourceFromRDS
     (
-    -- * Request
-      CreateDataSourceFromRDS
-    -- ** Request constructor
-    , createDataSourceFromRDS
-    -- ** Request lenses
+    -- * Creating a Request
+      createDataSourceFromRDS
+    , CreateDataSourceFromRDS
+    -- * Request Lenses
+    , cdsfrdsDataSourceName
     , cdsfrdsComputeStatistics
     , cdsfrdsDataSourceId
-    , cdsfrdsDataSourceName
     , cdsfrdsRDSData
     , cdsfrdsRoleARN
 
-    -- * Response
-    , CreateDataSourceFromRDSResponse
-    -- ** Response constructor
+    -- * Destructuring the Response
     , createDataSourceFromRDSResponse
-    -- ** Response lenses
-    , cdsfrdsrDataSourceId
+    , CreateDataSourceFromRDSResponse
+    -- * Response Lenses
+    , cdsfrdsrsDataSourceId
+    , cdsfrdsrsStatus
     ) where
 
-import Network.AWS.Data (Object)
-import Network.AWS.Prelude
-import Network.AWS.Request.JSON
-import Network.AWS.MachineLearning.Types
-import qualified GHC.Exts
+import           Network.AWS.MachineLearning.Types
+import           Network.AWS.MachineLearning.Types.Product
+import           Network.AWS.Prelude
+import           Network.AWS.Request
+import           Network.AWS.Response
 
-data CreateDataSourceFromRDS = CreateDataSourceFromRDS
-    { _cdsfrdsComputeStatistics :: Maybe Bool
-    , _cdsfrdsDataSourceId      :: Text
-    , _cdsfrdsDataSourceName    :: Maybe Text
-    , _cdsfrdsRDSData           :: RDSDataSpec
-    , _cdsfrdsRoleARN           :: Text
-    } deriving (Eq, Read, Show)
+-- | /See:/ 'createDataSourceFromRDS' smart constructor.
+data CreateDataSourceFromRDS = CreateDataSourceFromRDS'
+    { _cdsfrdsDataSourceName    :: !(Maybe Text)
+    , _cdsfrdsComputeStatistics :: !(Maybe Bool)
+    , _cdsfrdsDataSourceId      :: !Text
+    , _cdsfrdsRDSData           :: !RDSDataSpec
+    , _cdsfrdsRoleARN           :: !Text
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
 
--- | 'CreateDataSourceFromRDS' constructor.
---
--- The fields accessible through corresponding lenses are:
+-- | Creates a value of 'CreateDataSourceFromRDS' with the minimum fields required to make a request.
 --
--- * 'cdsfrdsComputeStatistics' @::@ 'Maybe' 'Bool'
+-- Use one of the following lenses to modify other fields as desired:
 --
--- * 'cdsfrdsDataSourceId' @::@ 'Text'
+-- * 'cdsfrdsDataSourceName'
 --
--- * 'cdsfrdsDataSourceName' @::@ 'Maybe' 'Text'
+-- * 'cdsfrdsComputeStatistics'
 --
--- * 'cdsfrdsRDSData' @::@ 'RDSDataSpec'
+-- * 'cdsfrdsDataSourceId'
 --
--- * 'cdsfrdsRoleARN' @::@ 'Text'
+-- * 'cdsfrdsRDSData'
 --
-createDataSourceFromRDS :: Text -- ^ 'cdsfrdsDataSourceId'
-                        -> RDSDataSpec -- ^ 'cdsfrdsRDSData'
-                        -> Text -- ^ 'cdsfrdsRoleARN'
-                        -> CreateDataSourceFromRDS
-createDataSourceFromRDS p1 p2 p3 = CreateDataSourceFromRDS
-    { _cdsfrdsDataSourceId      = p1
-    , _cdsfrdsRDSData           = p2
-    , _cdsfrdsRoleARN           = p3
-    , _cdsfrdsDataSourceName    = Nothing
+-- * 'cdsfrdsRoleARN'
+createDataSourceFromRDS
+    :: Text -- ^ 'cdsfrdsDataSourceId'
+    -> RDSDataSpec -- ^ 'cdsfrdsRDSData'
+    -> Text -- ^ 'cdsfrdsRoleARN'
+    -> CreateDataSourceFromRDS
+createDataSourceFromRDS pDataSourceId_ pRDSData_ pRoleARN_ =
+    CreateDataSourceFromRDS'
+    { _cdsfrdsDataSourceName = Nothing
     , _cdsfrdsComputeStatistics = Nothing
+    , _cdsfrdsDataSourceId = pDataSourceId_
+    , _cdsfrdsRDSData = pRDSData_
+    , _cdsfrdsRoleARN = pRoleARN_
     }
 
--- | The compute statistics for a 'DataSource'. The statistics are generated from
--- the observation data referenced by a 'DataSource'. Amazon ML uses the
--- statistics internally during an 'MLModel' training. This parameter must be set
--- to 'true' if the ''DataSource'' needs to be used for 'MLModel' training.
+-- | A user-supplied name or description of the 'DataSource'.
+cdsfrdsDataSourceName :: Lens' CreateDataSourceFromRDS (Maybe Text)
+cdsfrdsDataSourceName = lens _cdsfrdsDataSourceName (\ s a -> s{_cdsfrdsDataSourceName = a});
+
+-- | The compute statistics for a 'DataSource'. The statistics are generated
+-- from the observation data referenced by a 'DataSource'. Amazon ML uses
+-- the statistics internally during an 'MLModel' training. This parameter
+-- must be set to 'true' if the ''DataSource'' needs to be used for
+-- 'MLModel' training.
 cdsfrdsComputeStatistics :: Lens' CreateDataSourceFromRDS (Maybe Bool)
-cdsfrdsComputeStatistics =
-    lens _cdsfrdsComputeStatistics
-        (\s a -> s { _cdsfrdsComputeStatistics = a })
+cdsfrdsComputeStatistics = lens _cdsfrdsComputeStatistics (\ s a -> s{_cdsfrdsComputeStatistics = a});
 
--- | A user-supplied ID that uniquely identifies the 'DataSource'. Typically, an
--- Amazon Resource Number (ARN) becomes the ID for a 'DataSource'.
+-- | A user-supplied ID that uniquely identifies the 'DataSource'. Typically,
+-- an Amazon Resource Number (ARN) becomes the ID for a 'DataSource'.
 cdsfrdsDataSourceId :: Lens' CreateDataSourceFromRDS Text
-cdsfrdsDataSourceId =
-    lens _cdsfrdsDataSourceId (\s a -> s { _cdsfrdsDataSourceId = a })
-
--- | A user-supplied name or description of the 'DataSource'.
-cdsfrdsDataSourceName :: Lens' CreateDataSourceFromRDS (Maybe Text)
-cdsfrdsDataSourceName =
-    lens _cdsfrdsDataSourceName (\s a -> s { _cdsfrdsDataSourceName = a })
+cdsfrdsDataSourceId = lens _cdsfrdsDataSourceId (\ s a -> s{_cdsfrdsDataSourceId = a});
 
 -- | The data specification of an Amazon RDS 'DataSource':
 --
--- DatabaseInformation -   'DatabaseName ' - Name of the Amazon RDS database.  'InstanceIdentifier ' - Unique identifier for the Amazon RDS database instance.
---
---
--- DatabaseCredentials - AWS Identity and Access Management (IAM) credentials
--- that are used to connect to the Amazon RDS database.
---
--- ResourceRole - Role (DataPipelineDefaultResourceRole) assumed by an Amazon
--- Elastic Compute Cloud (EC2) instance to carry out the copy task from Amazon
--- RDS to Amazon S3. For more information, see <http://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-iam-roles.html Role templates> for data pipelines.
+-- -   DatabaseInformation -
 --
--- ServiceRole - Role (DataPipelineDefaultRole) assumed by the AWS Data
--- Pipeline service to monitor the progress of the copy task from Amazon RDS to
--- Amazon Simple Storage Service (S3). For more information, see <http://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-iam-roles.html Role templates>
--- for data pipelines.
+--     -   'DatabaseName ' - Name of the Amazon RDS database.
+--     -   ' InstanceIdentifier ' - Unique identifier for the Amazon RDS
+--         database instance.
+-- -   DatabaseCredentials - AWS Identity and Access Management (IAM)
+--     credentials that are used to connect to the Amazon RDS database.
 --
--- SecurityInfo - Security information to use to access an Amazon RDS instance.
--- You need to set up appropriate ingress rules for the security entity IDs
--- provided to allow access to the Amazon RDS instance. Specify a ['SubnetId', 'SecurityGroupIds'] pair for a VPC-based Amazon RDS instance.
+-- -   ResourceRole - Role (DataPipelineDefaultResourceRole) assumed by an
+--     Amazon Elastic Compute Cloud (EC2) instance to carry out the copy
+--     task from Amazon RDS to Amazon S3. For more information, see
+--     <http://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-iam-roles.html Role templates>
+--     for data pipelines.
 --
--- SelectSqlQuery - Query that is used to retrieve the observation data for the 'Datasource'.
+-- -   ServiceRole - Role (DataPipelineDefaultRole) assumed by the AWS Data
+--     Pipeline service to monitor the progress of the copy task from
+--     Amazon RDS to Amazon Simple Storage Service (S3). For more
+--     information, see
+--     <http://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-iam-roles.html Role templates>
+--     for data pipelines.
 --
--- S3StagingLocation - Amazon S3 location for staging RDS data. The data
--- retrieved from Amazon RDS using 'SelectSqlQuery' is stored in this location.
+-- -   SecurityInfo - Security information to use to access an Amazon RDS
+--     instance. You need to set up appropriate ingress rules for the
+--     security entity IDs provided to allow access to the Amazon RDS
+--     instance. Specify a ['SubnetId', 'SecurityGroupIds'] pair for a
+--     VPC-based Amazon RDS instance.
 --
--- DataSchemaUri - Amazon S3 location of the 'DataSchema'.
+-- -   SelectSqlQuery - Query that is used to retrieve the observation data
+--     for the 'Datasource'.
 --
--- DataSchema - A JSON string representing the schema. This is not required if 'DataSchemaUri' is specified.
+-- -   S3StagingLocation - Amazon S3 location for staging RDS data. The
+--     data retrieved from Amazon RDS using 'SelectSqlQuery' is stored in
+--     this location.
 --
--- DataRearrangement - A JSON string representing the splitting requirement of
--- a 'Datasource'.
+-- -   DataSchemaUri - Amazon S3 location of the 'DataSchema'.
 --
+-- -   DataSchema - A JSON string representing the schema. This is not
+--     required if 'DataSchemaUri' is specified.
 --
--- Sample - ' "{\"randomSeed\":\"some-random-seed\",\"splitting\":{\"percentBegin\":10,\"percentEnd\":60}}"'
+-- -   DataRearrangement - A JSON string representing the splitting
+--     requirement of a 'Datasource'.
 --
+--     Sample -
+--     ' \"{\\\"randomSeed\\\":\\\"some-random-seed\\\", \\\"splitting\\\":{\\\"percentBegin\\\":10,\\\"percentEnd\\\":60}}\"'
 --
 cdsfrdsRDSData :: Lens' CreateDataSourceFromRDS RDSDataSpec
-cdsfrdsRDSData = lens _cdsfrdsRDSData (\s a -> s { _cdsfrdsRDSData = a })
+cdsfrdsRDSData = lens _cdsfrdsRDSData (\ s a -> s{_cdsfrdsRDSData = a});
 
--- | The role that Amazon ML assumes on behalf of the user to create and activate
--- a data pipeline in the user’s account and copy data (using the 'SelectSqlQuery') query from Amazon RDS to Amazon S3.
---
---
+-- | The role that Amazon ML assumes on behalf of the user to create and
+-- activate a data pipeline in the user’s account and copy data (using the
+-- 'SelectSqlQuery') query from Amazon RDS to Amazon S3.
 --
 cdsfrdsRoleARN :: Lens' CreateDataSourceFromRDS Text
-cdsfrdsRoleARN = lens _cdsfrdsRoleARN (\s a -> s { _cdsfrdsRoleARN = a })
+cdsfrdsRoleARN = lens _cdsfrdsRoleARN (\ s a -> s{_cdsfrdsRoleARN = a});
 
-newtype CreateDataSourceFromRDSResponse = CreateDataSourceFromRDSResponse
-    { _cdsfrdsrDataSourceId :: Maybe Text
-    } deriving (Eq, Ord, Read, Show, Monoid)
+instance AWSRequest CreateDataSourceFromRDS where
+        type Sv CreateDataSourceFromRDS = MachineLearning
+        type Rs CreateDataSourceFromRDS =
+             CreateDataSourceFromRDSResponse
+        request = postJSON
+        response
+          = receiveJSON
+              (\ s h x ->
+                 CreateDataSourceFromRDSResponse' <$>
+                   (x .?> "DataSourceId") <*> (pure (fromEnum s)))
 
--- | 'CreateDataSourceFromRDSResponse' constructor.
---
--- The fields accessible through corresponding lenses are:
---
--- * 'cdsfrdsrDataSourceId' @::@ 'Maybe' 'Text'
---
-createDataSourceFromRDSResponse :: CreateDataSourceFromRDSResponse
-createDataSourceFromRDSResponse = CreateDataSourceFromRDSResponse
-    { _cdsfrdsrDataSourceId = Nothing
-    }
+instance ToHeaders CreateDataSourceFromRDS where
+        toHeaders
+          = const
+              (mconcat
+                 ["X-Amz-Target" =#
+                    ("AmazonML_20141212.CreateDataSourceFromRDS" ::
+                       ByteString),
+                  "Content-Type" =#
+                    ("application/x-amz-json-1.1" :: ByteString)])
 
--- | A user-supplied ID that uniquely identifies the datasource. This value should
--- be identical to the value of the 'DataSourceID' in the request.
-cdsfrdsrDataSourceId :: Lens' CreateDataSourceFromRDSResponse (Maybe Text)
-cdsfrdsrDataSourceId =
-    lens _cdsfrdsrDataSourceId (\s a -> s { _cdsfrdsrDataSourceId = a })
+instance ToJSON CreateDataSourceFromRDS where
+        toJSON CreateDataSourceFromRDS'{..}
+          = object
+              ["DataSourceName" .= _cdsfrdsDataSourceName,
+               "ComputeStatistics" .= _cdsfrdsComputeStatistics,
+               "DataSourceId" .= _cdsfrdsDataSourceId,
+               "RDSData" .= _cdsfrdsRDSData,
+               "RoleARN" .= _cdsfrdsRoleARN]
 
 instance ToPath CreateDataSourceFromRDS where
-    toPath = const "/"
+        toPath = const "/"
 
 instance ToQuery CreateDataSourceFromRDS where
-    toQuery = const mempty
-
-instance ToHeaders CreateDataSourceFromRDS
+        toQuery = const mempty
 
-instance ToJSON CreateDataSourceFromRDS where
-    toJSON CreateDataSourceFromRDS{..} = object
-        [ "DataSourceId"      .= _cdsfrdsDataSourceId
-        , "DataSourceName"    .= _cdsfrdsDataSourceName
-        , "RDSData"           .= _cdsfrdsRDSData
-        , "RoleARN"           .= _cdsfrdsRoleARN
-        , "ComputeStatistics" .= _cdsfrdsComputeStatistics
-        ]
+-- | Represents the output of a CreateDataSourceFromRDS operation, and is an
+-- acknowledgement that Amazon ML received the request.
+--
+-- The CreateDataSourceFromRDS operation is asynchronous. You can poll for
+-- updates by using the GetBatchPrediction operation and checking the
+-- 'Status' parameter. You can inspect the 'Message' when 'Status' shows up
+-- as 'FAILED'. You can also check the progress of the copy operation by
+-- going to the 'DataPipeline' console and looking up the pipeline using
+-- the pipelineId from the describe call.
+--
+-- /See:/ 'createDataSourceFromRDSResponse' smart constructor.
+data CreateDataSourceFromRDSResponse = CreateDataSourceFromRDSResponse'
+    { _cdsfrdsrsDataSourceId :: !(Maybe Text)
+    , _cdsfrdsrsStatus       :: !Int
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
 
-instance AWSRequest CreateDataSourceFromRDS where
-    type Sv CreateDataSourceFromRDS = MachineLearning
-    type Rs CreateDataSourceFromRDS = CreateDataSourceFromRDSResponse
+-- | Creates a value of 'CreateDataSourceFromRDSResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'cdsfrdsrsDataSourceId'
+--
+-- * 'cdsfrdsrsStatus'
+createDataSourceFromRDSResponse
+    :: Int -- ^ 'cdsfrdsrsStatus'
+    -> CreateDataSourceFromRDSResponse
+createDataSourceFromRDSResponse pStatus_ =
+    CreateDataSourceFromRDSResponse'
+    { _cdsfrdsrsDataSourceId = Nothing
+    , _cdsfrdsrsStatus = pStatus_
+    }
 
-    request  = post "CreateDataSourceFromRDS"
-    response = jsonResponse
+-- | A user-supplied ID that uniquely identifies the datasource. This value
+-- should be identical to the value of the 'DataSourceID' in the request.
+cdsfrdsrsDataSourceId :: Lens' CreateDataSourceFromRDSResponse (Maybe Text)
+cdsfrdsrsDataSourceId = lens _cdsfrdsrsDataSourceId (\ s a -> s{_cdsfrdsrsDataSourceId = a});
 
-instance FromJSON CreateDataSourceFromRDSResponse where
-    parseJSON = withObject "CreateDataSourceFromRDSResponse" $ \o -> CreateDataSourceFromRDSResponse
-        <$> o .:? "DataSourceId"
+-- | The response status code.
+cdsfrdsrsStatus :: Lens' CreateDataSourceFromRDSResponse Int
+cdsfrdsrsStatus = lens _cdsfrdsrsStatus (\ s a -> s{_cdsfrdsrsStatus = a});
diff --git a/gen/Network/AWS/MachineLearning/CreateDataSourceFromRedshift.hs b/gen/Network/AWS/MachineLearning/CreateDataSourceFromRedshift.hs
--- a/gen/Network/AWS/MachineLearning/CreateDataSourceFromRedshift.hs
+++ b/gen/Network/AWS/MachineLearning/CreateDataSourceFromRedshift.hs
@@ -1,214 +1,254 @@
-{-# 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.MachineLearning.CreateDataSourceFromRedshift
--- 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 'DataSource' from <http://aws.amazon.com/redshift/ Amazon Redshift>. A 'DataSource' references data that
--- can be used to perform either 'CreateMLModel', 'CreateEvaluation' or 'CreateBatchPrediction' operations.
+-- Creates a 'DataSource' from
+-- <http://aws.amazon.com/redshift/ Amazon Redshift>. A 'DataSource'
+-- references data that can be used to perform either CreateMLModel,
+-- CreateEvaluation or CreateBatchPrediction operations.
 --
--- 'CreateDataSourceFromRedshift' is an asynchronous operation. In response to 'CreateDataSourceFromRedshift', Amazon Machine Learning (Amazon ML) immediately returns and sets the 'DataSource' status to 'PENDING'. After the 'DataSource' is created and ready for use, Amazon
--- ML sets the 'Status' parameter to 'COMPLETED'. 'DataSource' in 'COMPLETED' or 'PENDING'
--- status can only be used to perform 'CreateMLModel', 'CreateEvaluation', or 'CreateBatchPrediction' operations.
+-- 'CreateDataSourceFromRedshift' is an asynchronous operation. In response
+-- to 'CreateDataSourceFromRedshift', Amazon Machine Learning (Amazon ML)
+-- immediately returns and sets the 'DataSource' status to 'PENDING'. After
+-- the 'DataSource' is created and ready for use, Amazon ML sets the
+-- 'Status' parameter to 'COMPLETED'. 'DataSource' in 'COMPLETED' or
+-- 'PENDING' status can only be used to perform CreateMLModel,
+-- CreateEvaluation, or CreateBatchPrediction operations.
 --
--- If Amazon ML cannot accept the input source, it sets the 'Status' parameter
--- to 'FAILED' and includes an error message in the 'Message' attribute of the 'GetDataSource' operation response.
+-- If Amazon ML cannot accept the input source, it sets the 'Status'
+-- parameter to 'FAILED' and includes an error message in the 'Message'
+-- attribute of the GetDataSource operation response.
 --
--- The observations should exist in the database hosted on an Amazon Redshift
--- cluster and should be specified by a 'SelectSqlQuery'. Amazon ML executes <http://docs.aws.amazon.com/redshift/latest/dg/t_Unloading_tables.html Unload> command in Amazon Redshift to transfer the result set of 'SelectSqlQuery'
--- to 'S3StagingLocation.'
+-- The observations should exist in the database hosted on an Amazon
+-- Redshift cluster and should be specified by a 'SelectSqlQuery'. Amazon
+-- ML executes
+-- <http://docs.aws.amazon.com/redshift/latest/dg/t_Unloading_tables.html Unload>
+-- command in Amazon Redshift to transfer the result set of
+-- 'SelectSqlQuery' to 'S3StagingLocation.'
 --
--- After the 'DataSource' is created, it's ready for use in evaluations and batch
--- predictions. If you plan to use the 'DataSource' to train an 'MLModel', the 'DataSource' requires another item -- a recipe. A recipe describes the observation
--- variables that participate in training an 'MLModel'. A recipe describes how
--- each input variable will be used in training. Will the variable be included
--- or excluded from training? Will the variable be manipulated, for example,
--- combined with another variable or split apart into word combinations? The
--- recipe provides answers to these questions. For more information, see the
--- Amazon Machine Learning Developer Guide.
+-- After the 'DataSource' is created, it\'s ready for use in evaluations
+-- and batch predictions. If you plan to use the 'DataSource' to train an
+-- 'MLModel', the 'DataSource' requires another item -- a recipe. A recipe
+-- describes the observation variables that participate in training an
+-- 'MLModel'. A recipe describes how each input variable will be used in
+-- training. Will the variable be included or excluded from training? Will
+-- the variable be manipulated, for example, combined with another variable
+-- or split apart into word combinations? The recipe provides answers to
+-- these questions. For more information, see the Amazon Machine Learning
+-- Developer Guide.
 --
--- <http://http://docs.aws.amazon.com/machine-learning/latest/APIReference/API_CreateDataSourceFromRedshift.html>
+-- /See:/ <http://http://docs.aws.amazon.com/machine-learning/latest/APIReference/API_CreateDataSourceFromRedshift.html AWS API Reference> for CreateDataSourceFromRedshift.
 module Network.AWS.MachineLearning.CreateDataSourceFromRedshift
     (
-    -- * Request
-      CreateDataSourceFromRedshift
-    -- ** Request constructor
-    , createDataSourceFromRedshift
-    -- ** Request lenses
+    -- * Creating a Request
+      createDataSourceFromRedshift
+    , CreateDataSourceFromRedshift
+    -- * Request Lenses
+    , cdsfrDataSourceName
     , cdsfrComputeStatistics
     , cdsfrDataSourceId
-    , cdsfrDataSourceName
     , cdsfrDataSpec
     , cdsfrRoleARN
 
-    -- * Response
-    , CreateDataSourceFromRedshiftResponse
-    -- ** Response constructor
+    -- * Destructuring the Response
     , createDataSourceFromRedshiftResponse
-    -- ** Response lenses
-    , cdsfrrDataSourceId
+    , CreateDataSourceFromRedshiftResponse
+    -- * Response Lenses
+    , cdsfrrsDataSourceId
+    , cdsfrrsStatus
     ) where
 
-import Network.AWS.Data (Object)
-import Network.AWS.Prelude
-import Network.AWS.Request.JSON
-import Network.AWS.MachineLearning.Types
-import qualified GHC.Exts
+import           Network.AWS.MachineLearning.Types
+import           Network.AWS.MachineLearning.Types.Product
+import           Network.AWS.Prelude
+import           Network.AWS.Request
+import           Network.AWS.Response
 
-data CreateDataSourceFromRedshift = CreateDataSourceFromRedshift
-    { _cdsfrComputeStatistics :: Maybe Bool
-    , _cdsfrDataSourceId      :: Text
-    , _cdsfrDataSourceName    :: Maybe Text
-    , _cdsfrDataSpec          :: RedshiftDataSpec
-    , _cdsfrRoleARN           :: Text
-    } deriving (Eq, Read, Show)
+-- | /See:/ 'createDataSourceFromRedshift' smart constructor.
+data CreateDataSourceFromRedshift = CreateDataSourceFromRedshift'
+    { _cdsfrDataSourceName    :: !(Maybe Text)
+    , _cdsfrComputeStatistics :: !(Maybe Bool)
+    , _cdsfrDataSourceId      :: !Text
+    , _cdsfrDataSpec          :: !RedshiftDataSpec
+    , _cdsfrRoleARN           :: !Text
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
 
--- | 'CreateDataSourceFromRedshift' constructor.
---
--- The fields accessible through corresponding lenses are:
+-- | Creates a value of 'CreateDataSourceFromRedshift' with the minimum fields required to make a request.
 --
--- * 'cdsfrComputeStatistics' @::@ 'Maybe' 'Bool'
+-- Use one of the following lenses to modify other fields as desired:
 --
--- * 'cdsfrDataSourceId' @::@ 'Text'
+-- * 'cdsfrDataSourceName'
 --
--- * 'cdsfrDataSourceName' @::@ 'Maybe' 'Text'
+-- * 'cdsfrComputeStatistics'
 --
--- * 'cdsfrDataSpec' @::@ 'RedshiftDataSpec'
+-- * 'cdsfrDataSourceId'
 --
--- * 'cdsfrRoleARN' @::@ 'Text'
+-- * 'cdsfrDataSpec'
 --
-createDataSourceFromRedshift :: Text -- ^ 'cdsfrDataSourceId'
-                             -> RedshiftDataSpec -- ^ 'cdsfrDataSpec'
-                             -> Text -- ^ 'cdsfrRoleARN'
-                             -> CreateDataSourceFromRedshift
-createDataSourceFromRedshift p1 p2 p3 = CreateDataSourceFromRedshift
-    { _cdsfrDataSourceId      = p1
-    , _cdsfrDataSpec          = p2
-    , _cdsfrRoleARN           = p3
-    , _cdsfrDataSourceName    = Nothing
+-- * 'cdsfrRoleARN'
+createDataSourceFromRedshift
+    :: Text -- ^ 'cdsfrDataSourceId'
+    -> RedshiftDataSpec -- ^ 'cdsfrDataSpec'
+    -> Text -- ^ 'cdsfrRoleARN'
+    -> CreateDataSourceFromRedshift
+createDataSourceFromRedshift pDataSourceId_ pDataSpec_ pRoleARN_ =
+    CreateDataSourceFromRedshift'
+    { _cdsfrDataSourceName = Nothing
     , _cdsfrComputeStatistics = Nothing
+    , _cdsfrDataSourceId = pDataSourceId_
+    , _cdsfrDataSpec = pDataSpec_
+    , _cdsfrRoleARN = pRoleARN_
     }
 
--- | The compute statistics for a 'DataSource'. The statistics are generated from
--- the observation data referenced by a 'DataSource'. Amazon ML uses the
--- statistics internally during 'MLModel' training. This parameter must be set to 'true' if the ''DataSource'' needs to be used for 'MLModel' training
+-- | A user-supplied name or description of the 'DataSource'.
+cdsfrDataSourceName :: Lens' CreateDataSourceFromRedshift (Maybe Text)
+cdsfrDataSourceName = lens _cdsfrDataSourceName (\ s a -> s{_cdsfrDataSourceName = a});
+
+-- | The compute statistics for a 'DataSource'. The statistics are generated
+-- from the observation data referenced by a 'DataSource'. Amazon ML uses
+-- the statistics internally during 'MLModel' training. This parameter must
+-- be set to 'true' if the ''DataSource'' needs to be used for 'MLModel'
+-- training
 cdsfrComputeStatistics :: Lens' CreateDataSourceFromRedshift (Maybe Bool)
-cdsfrComputeStatistics =
-    lens _cdsfrComputeStatistics (\s a -> s { _cdsfrComputeStatistics = a })
+cdsfrComputeStatistics = lens _cdsfrComputeStatistics (\ s a -> s{_cdsfrComputeStatistics = a});
 
 -- | A user-supplied ID that uniquely identifies the 'DataSource'.
 cdsfrDataSourceId :: Lens' CreateDataSourceFromRedshift Text
-cdsfrDataSourceId =
-    lens _cdsfrDataSourceId (\s a -> s { _cdsfrDataSourceId = a })
-
--- | A user-supplied name or description of the 'DataSource'.
-cdsfrDataSourceName :: Lens' CreateDataSourceFromRedshift (Maybe Text)
-cdsfrDataSourceName =
-    lens _cdsfrDataSourceName (\s a -> s { _cdsfrDataSourceName = a })
+cdsfrDataSourceId = lens _cdsfrDataSourceId (\ s a -> s{_cdsfrDataSourceId = a});
 
 -- | The data specification of an Amazon Redshift 'DataSource':
 --
--- DatabaseInformation -   'DatabaseName ' - Name of the Amazon Redshift
--- database.   ' ClusterIdentifier ' - Unique ID for the Amazon Redshift cluster.
---
--- DatabaseCredentials - AWS Identity abd Access Management (IAM) credentials
--- that are used to connect to the Amazon Redshift database.
---
--- SelectSqlQuery - Query that is used to retrieve the observation data for the 'Datasource'.
+-- -   DatabaseInformation -
 --
--- S3StagingLocation - Amazon Simple Storage Service (Amazon S3) location for
--- staging Amazon Redshift data. The data retrieved from Amazon Relational
--- Database Service (Amazon RDS) using 'SelectSqlQuery' is stored in this location.
+--     -   'DatabaseName ' - Name of the Amazon Redshift database.
+--     -   ' ClusterIdentifier ' - Unique ID for the Amazon Redshift
+--         cluster.
+-- -   DatabaseCredentials - AWS Identity abd Access Management (IAM)
+--     credentials that are used to connect to the Amazon Redshift
+--     database.
 --
--- DataSchemaUri - Amazon S3 location of the 'DataSchema'.
+-- -   SelectSqlQuery - Query that is used to retrieve the observation data
+--     for the 'Datasource'.
 --
--- DataSchema - A JSON string representing the schema. This is not required if 'DataSchemaUri' is specified.
+-- -   S3StagingLocation - Amazon Simple Storage Service (Amazon S3)
+--     location for staging Amazon Redshift data. The data retrieved from
+--     Amazon Relational Database Service (Amazon RDS) using
+--     'SelectSqlQuery' is stored in this location.
 --
--- DataRearrangement - A JSON string representing the splitting requirement of
--- a 'Datasource'.
+-- -   DataSchemaUri - Amazon S3 location of the 'DataSchema'.
 --
+-- -   DataSchema - A JSON string representing the schema. This is not
+--     required if 'DataSchemaUri' is specified.
 --
--- Sample - ' "{\"randomSeed\":\"some-random-seed\",\"splitting\":{\"percentBegin\":10,\"percentEnd\":60}}"'
+-- -   DataRearrangement - A JSON string representing the splitting
+--     requirement of a 'Datasource'.
 --
+--     Sample -
+--     ' \"{\\\"randomSeed\\\":\\\"some-random-seed\\\", \\\"splitting\\\":{\\\"percentBegin\\\":10,\\\"percentEnd\\\":60}}\"'
 --
 cdsfrDataSpec :: Lens' CreateDataSourceFromRedshift RedshiftDataSpec
-cdsfrDataSpec = lens _cdsfrDataSpec (\s a -> s { _cdsfrDataSpec = a })
+cdsfrDataSpec = lens _cdsfrDataSpec (\ s a -> s{_cdsfrDataSpec = a});
 
--- | A fully specified role Amazon Resource Name (ARN). Amazon ML assumes the role
--- on behalf of the user to create the following:
---
--- A security group to allow Amazon ML to execute the 'SelectSqlQuery' query on
--- an Amazon Redshift cluster
+-- | A fully specified role Amazon Resource Name (ARN). Amazon ML assumes the
+-- role on behalf of the user to create the following:
 --
--- An Amazon S3 bucket policy to grant Amazon ML read/write permissions on the 'S3StagingLocation'
+-- -   A security group to allow Amazon ML to execute the 'SelectSqlQuery'
+--     query on an Amazon Redshift cluster
 --
+-- -   An Amazon S3 bucket policy to grant Amazon ML read\/write
+--     permissions on the 'S3StagingLocation'
 --
 cdsfrRoleARN :: Lens' CreateDataSourceFromRedshift Text
-cdsfrRoleARN = lens _cdsfrRoleARN (\s a -> s { _cdsfrRoleARN = a })
+cdsfrRoleARN = lens _cdsfrRoleARN (\ s a -> s{_cdsfrRoleARN = a});
 
-newtype CreateDataSourceFromRedshiftResponse = CreateDataSourceFromRedshiftResponse
-    { _cdsfrrDataSourceId :: Maybe Text
-    } deriving (Eq, Ord, Read, Show, Monoid)
+instance AWSRequest CreateDataSourceFromRedshift
+         where
+        type Sv CreateDataSourceFromRedshift =
+             MachineLearning
+        type Rs CreateDataSourceFromRedshift =
+             CreateDataSourceFromRedshiftResponse
+        request = postJSON
+        response
+          = receiveJSON
+              (\ s h x ->
+                 CreateDataSourceFromRedshiftResponse' <$>
+                   (x .?> "DataSourceId") <*> (pure (fromEnum s)))
 
--- | 'CreateDataSourceFromRedshiftResponse' constructor.
---
--- The fields accessible through corresponding lenses are:
---
--- * 'cdsfrrDataSourceId' @::@ 'Maybe' 'Text'
---
-createDataSourceFromRedshiftResponse :: CreateDataSourceFromRedshiftResponse
-createDataSourceFromRedshiftResponse = CreateDataSourceFromRedshiftResponse
-    { _cdsfrrDataSourceId = Nothing
-    }
+instance ToHeaders CreateDataSourceFromRedshift where
+        toHeaders
+          = const
+              (mconcat
+                 ["X-Amz-Target" =#
+                    ("AmazonML_20141212.CreateDataSourceFromRedshift" ::
+                       ByteString),
+                  "Content-Type" =#
+                    ("application/x-amz-json-1.1" :: ByteString)])
 
--- | A user-supplied ID that uniquely identifies the datasource. This value should
--- be identical to the value of the 'DataSourceID' in the request.
-cdsfrrDataSourceId :: Lens' CreateDataSourceFromRedshiftResponse (Maybe Text)
-cdsfrrDataSourceId =
-    lens _cdsfrrDataSourceId (\s a -> s { _cdsfrrDataSourceId = a })
+instance ToJSON CreateDataSourceFromRedshift where
+        toJSON CreateDataSourceFromRedshift'{..}
+          = object
+              ["DataSourceName" .= _cdsfrDataSourceName,
+               "ComputeStatistics" .= _cdsfrComputeStatistics,
+               "DataSourceId" .= _cdsfrDataSourceId,
+               "DataSpec" .= _cdsfrDataSpec,
+               "RoleARN" .= _cdsfrRoleARN]
 
 instance ToPath CreateDataSourceFromRedshift where
-    toPath = const "/"
+        toPath = const "/"
 
 instance ToQuery CreateDataSourceFromRedshift where
-    toQuery = const mempty
-
-instance ToHeaders CreateDataSourceFromRedshift
+        toQuery = const mempty
 
-instance ToJSON CreateDataSourceFromRedshift where
-    toJSON CreateDataSourceFromRedshift{..} = object
-        [ "DataSourceId"      .= _cdsfrDataSourceId
-        , "DataSourceName"    .= _cdsfrDataSourceName
-        , "DataSpec"          .= _cdsfrDataSpec
-        , "RoleARN"           .= _cdsfrRoleARN
-        , "ComputeStatistics" .= _cdsfrComputeStatistics
-        ]
+-- | Represents the output of a CreateDataSourceFromRedshift operation, and
+-- is an acknowledgement that Amazon ML received the request.
+--
+-- The CreateDataSourceFromRedshift operation is asynchronous. You can poll
+-- for updates by using the GetBatchPrediction operation and checking the
+-- 'Status' parameter.
+--
+-- /See:/ 'createDataSourceFromRedshiftResponse' smart constructor.
+data CreateDataSourceFromRedshiftResponse = CreateDataSourceFromRedshiftResponse'
+    { _cdsfrrsDataSourceId :: !(Maybe Text)
+    , _cdsfrrsStatus       :: !Int
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
 
-instance AWSRequest CreateDataSourceFromRedshift where
-    type Sv CreateDataSourceFromRedshift = MachineLearning
-    type Rs CreateDataSourceFromRedshift = CreateDataSourceFromRedshiftResponse
+-- | Creates a value of 'CreateDataSourceFromRedshiftResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'cdsfrrsDataSourceId'
+--
+-- * 'cdsfrrsStatus'
+createDataSourceFromRedshiftResponse
+    :: Int -- ^ 'cdsfrrsStatus'
+    -> CreateDataSourceFromRedshiftResponse
+createDataSourceFromRedshiftResponse pStatus_ =
+    CreateDataSourceFromRedshiftResponse'
+    { _cdsfrrsDataSourceId = Nothing
+    , _cdsfrrsStatus = pStatus_
+    }
 
-    request  = post "CreateDataSourceFromRedshift"
-    response = jsonResponse
+-- | A user-supplied ID that uniquely identifies the datasource. This value
+-- should be identical to the value of the 'DataSourceID' in the request.
+cdsfrrsDataSourceId :: Lens' CreateDataSourceFromRedshiftResponse (Maybe Text)
+cdsfrrsDataSourceId = lens _cdsfrrsDataSourceId (\ s a -> s{_cdsfrrsDataSourceId = a});
 
-instance FromJSON CreateDataSourceFromRedshiftResponse where
-    parseJSON = withObject "CreateDataSourceFromRedshiftResponse" $ \o -> CreateDataSourceFromRedshiftResponse
-        <$> o .:? "DataSourceId"
+-- | The response status code.
+cdsfrrsStatus :: Lens' CreateDataSourceFromRedshiftResponse Int
+cdsfrrsStatus = lens _cdsfrrsStatus (\ s a -> s{_cdsfrrsStatus = a});
diff --git a/gen/Network/AWS/MachineLearning/CreateDataSourceFromS.hs b/gen/Network/AWS/MachineLearning/CreateDataSourceFromS.hs
--- a/gen/Network/AWS/MachineLearning/CreateDataSourceFromS.hs
+++ b/gen/Network/AWS/MachineLearning/CreateDataSourceFromS.hs
@@ -1,190 +1,219 @@
-{-# 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.MachineLearning.CreateDataSourceFromS
--- 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 'DataSource' object. A 'DataSource' references data that can be used to
--- perform 'CreateMLModel', 'CreateEvaluation', or 'CreateBatchPrediction' operations.
+-- Creates a 'DataSource' object. A 'DataSource' references data that can
+-- be used to perform CreateMLModel, CreateEvaluation, or
+-- CreateBatchPrediction operations.
 --
--- 'CreateDataSourceFromS3' is an asynchronous operation. In response to 'CreateDataSourceFromS3', Amazon Machine Learning (Amazon ML) immediately returns and sets the 'DataSource' status to 'PENDING'. After the 'DataSource' is created and ready for use, Amazon
--- ML sets the 'Status' parameter to 'COMPLETED'. 'DataSource' in 'COMPLETED' or 'PENDING'
--- status can only be used to perform 'CreateMLModel', 'CreateEvaluation' or 'CreateBatchPrediction' operations.
+-- 'CreateDataSourceFromS3' is an asynchronous operation. In response to
+-- 'CreateDataSourceFromS3', Amazon Machine Learning (Amazon ML)
+-- immediately returns and sets the 'DataSource' status to 'PENDING'. After
+-- the 'DataSource' is created and ready for use, Amazon ML sets the
+-- 'Status' parameter to 'COMPLETED'. 'DataSource' in 'COMPLETED' or
+-- 'PENDING' status can only be used to perform CreateMLModel,
+-- CreateEvaluation or CreateBatchPrediction operations.
 --
--- If Amazon ML cannot accept the input source, it sets the 'Status' parameter
--- to 'FAILED' and includes an error message in the 'Message' attribute of the 'GetDataSource' operation response.
+-- If Amazon ML cannot accept the input source, it sets the 'Status'
+-- parameter to 'FAILED' and includes an error message in the 'Message'
+-- attribute of the GetDataSource operation response.
 --
--- The observation data used in a 'DataSource' should be ready to use; that is,
--- it should have a consistent structure, and missing data values should be kept
--- to a minimum. The observation data must reside in one or more CSV files in an
--- Amazon Simple Storage Service (Amazon S3) bucket, along with a schema that
--- describes the data items by name and type. The same schema must be used for
--- all of the data files referenced by the 'DataSource'.
+-- The observation data used in a 'DataSource' should be ready to use; that
+-- is, it should have a consistent structure, and missing data values
+-- should be kept to a minimum. The observation data must reside in one or
+-- more CSV files in an Amazon Simple Storage Service (Amazon S3) bucket,
+-- along with a schema that describes the data items by name and type. The
+-- same schema must be used for all of the data files referenced by the
+-- 'DataSource'.
 --
--- After the 'DataSource' has been created, it's ready to use in evaluations and
--- batch predictions. If you plan to use the 'DataSource' to train an 'MLModel', the 'DataSource' requires another item: a recipe. A recipe describes the
--- observation variables that participate in training an 'MLModel'. A recipe
--- describes how each input variable will be used in training. Will the variable
--- be included or excluded from training? Will the variable be manipulated, for
--- example, combined with another variable, or split apart into word
--- combinations? The recipe provides answers to these questions. For more
--- information, see the <http://docs.aws.amazon.com/machine-learning/latest/dg Amazon Machine Learning Developer Guide>.
+-- After the 'DataSource' has been created, it\'s ready to use in
+-- evaluations and batch predictions. If you plan to use the 'DataSource'
+-- to train an 'MLModel', the 'DataSource' requires another item: a recipe.
+-- A recipe describes the observation variables that participate in
+-- training an 'MLModel'. A recipe describes how each input variable will
+-- be used in training. Will the variable be included or excluded from
+-- training? Will the variable be manipulated, for example, combined with
+-- another variable, or split apart into word combinations? The recipe
+-- provides answers to these questions. For more information, see the
+-- <http://docs.aws.amazon.com/machine-learning/latest/dg Amazon Machine Learning Developer Guide>.
 --
--- <http://http://docs.aws.amazon.com/machine-learning/latest/APIReference/API_CreateDataSourceFromS3.html>
+-- /See:/ <http://http://docs.aws.amazon.com/machine-learning/latest/APIReference/API_CreateDataSourceFromS.html AWS API Reference> for CreateDataSourceFromS.
 module Network.AWS.MachineLearning.CreateDataSourceFromS
     (
-    -- * Request
-      CreateDataSourceFromS3
-    -- ** Request constructor
-    , createDataSourceFromS3
-    -- ** Request lenses
+    -- * Creating a Request
+      createDataSourceFromS
+    , CreateDataSourceFromS
+    -- * Request Lenses
+    , cdsfsDataSourceName
     , cdsfsComputeStatistics
     , cdsfsDataSourceId
-    , cdsfsDataSourceName
     , cdsfsDataSpec
 
-    -- * Response
-    , CreateDataSourceFromS3Response
-    -- ** Response constructor
-    , createDataSourceFromS3Response
-    -- ** Response lenses
-    , cdsfsrDataSourceId
+    -- * Destructuring the Response
+    , createDataSourceFromSResponse
+    , CreateDataSourceFromSResponse
+    -- * Response Lenses
+    , cdsfsrsDataSourceId
+    , cdsfsrsStatus
     ) where
 
-import Network.AWS.Data (Object)
-import Network.AWS.Prelude
-import Network.AWS.Request.JSON
-import Network.AWS.MachineLearning.Types
-import qualified GHC.Exts
+import           Network.AWS.MachineLearning.Types
+import           Network.AWS.MachineLearning.Types.Product
+import           Network.AWS.Prelude
+import           Network.AWS.Request
+import           Network.AWS.Response
 
-data CreateDataSourceFromS3 = CreateDataSourceFromS3
-    { _cdsfsComputeStatistics :: Maybe Bool
-    , _cdsfsDataSourceId      :: Text
-    , _cdsfsDataSourceName    :: Maybe Text
-    , _cdsfsDataSpec          :: S3DataSpec
-    } deriving (Eq, Read, Show)
+-- | /See:/ 'createDataSourceFromS' smart constructor.
+data CreateDataSourceFromS = CreateDataSourceFromS'
+    { _cdsfsDataSourceName    :: !(Maybe Text)
+    , _cdsfsComputeStatistics :: !(Maybe Bool)
+    , _cdsfsDataSourceId      :: !Text
+    , _cdsfsDataSpec          :: !S3DataSpec
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
 
--- | 'CreateDataSourceFromS3' constructor.
---
--- The fields accessible through corresponding lenses are:
+-- | Creates a value of 'CreateDataSourceFromS' with the minimum fields required to make a request.
 --
--- * 'cdsfsComputeStatistics' @::@ 'Maybe' 'Bool'
+-- Use one of the following lenses to modify other fields as desired:
 --
--- * 'cdsfsDataSourceId' @::@ 'Text'
+-- * 'cdsfsDataSourceName'
 --
--- * 'cdsfsDataSourceName' @::@ 'Maybe' 'Text'
+-- * 'cdsfsComputeStatistics'
 --
--- * 'cdsfsDataSpec' @::@ 'S3DataSpec'
+-- * 'cdsfsDataSourceId'
 --
-createDataSourceFromS3 :: Text -- ^ 'cdsfsDataSourceId'
-                       -> S3DataSpec -- ^ 'cdsfsDataSpec'
-                       -> CreateDataSourceFromS3
-createDataSourceFromS3 p1 p2 = CreateDataSourceFromS3
-    { _cdsfsDataSourceId      = p1
-    , _cdsfsDataSpec          = p2
-    , _cdsfsDataSourceName    = Nothing
+-- * 'cdsfsDataSpec'
+createDataSourceFromS
+    :: Text -- ^ 'cdsfsDataSourceId'
+    -> S3DataSpec -- ^ 'cdsfsDataSpec'
+    -> CreateDataSourceFromS
+createDataSourceFromS pDataSourceId_ pDataSpec_ =
+    CreateDataSourceFromS'
+    { _cdsfsDataSourceName = Nothing
     , _cdsfsComputeStatistics = Nothing
+    , _cdsfsDataSourceId = pDataSourceId_
+    , _cdsfsDataSpec = pDataSpec_
     }
 
--- | The compute statistics for a 'DataSource'. The statistics are generated from
--- the observation data referenced by a 'DataSource'. Amazon ML uses the
--- statistics internally during an 'MLModel' training. This parameter must be set
--- to 'true' if the ''DataSource'' needs to be used for 'MLModel' training
-cdsfsComputeStatistics :: Lens' CreateDataSourceFromS3 (Maybe Bool)
-cdsfsComputeStatistics =
-    lens _cdsfsComputeStatistics (\s a -> s { _cdsfsComputeStatistics = a })
+-- | A user-supplied name or description of the 'DataSource'.
+cdsfsDataSourceName :: Lens' CreateDataSourceFromS (Maybe Text)
+cdsfsDataSourceName = lens _cdsfsDataSourceName (\ s a -> s{_cdsfsDataSourceName = a});
 
--- | A user-supplied identifier that uniquely identifies the 'DataSource'.
-cdsfsDataSourceId :: Lens' CreateDataSourceFromS3 Text
-cdsfsDataSourceId =
-    lens _cdsfsDataSourceId (\s a -> s { _cdsfsDataSourceId = a })
+-- | The compute statistics for a 'DataSource'. The statistics are generated
+-- from the observation data referenced by a 'DataSource'. Amazon ML uses
+-- the statistics internally during an 'MLModel' training. This parameter
+-- must be set to 'true' if the ''DataSource'' needs to be used for
+-- 'MLModel' training
+cdsfsComputeStatistics :: Lens' CreateDataSourceFromS (Maybe Bool)
+cdsfsComputeStatistics = lens _cdsfsComputeStatistics (\ s a -> s{_cdsfsComputeStatistics = a});
 
--- | A user-supplied name or description of the 'DataSource'.
-cdsfsDataSourceName :: Lens' CreateDataSourceFromS3 (Maybe Text)
-cdsfsDataSourceName =
-    lens _cdsfsDataSourceName (\s a -> s { _cdsfsDataSourceName = a })
+-- | A user-supplied identifier that uniquely identifies the 'DataSource'.
+cdsfsDataSourceId :: Lens' CreateDataSourceFromS Text
+cdsfsDataSourceId = lens _cdsfsDataSourceId (\ s a -> s{_cdsfsDataSourceId = a});
 
 -- | The data specification of a 'DataSource':
 --
--- DataLocationS3 - Amazon Simple Storage Service (Amazon S3) location of the
--- observation data.
---
--- DataSchemaLocationS3 - Amazon S3 location of the 'DataSchema'.
---
--- DataSchema - A JSON string representing the schema. This is not required if 'DataSchemaUri' is specified.
+-- -   DataLocationS3 - Amazon Simple Storage Service (Amazon S3) location
+--     of the observation data.
 --
--- DataRearrangement - A JSON string representing the splitting requirement of
--- a 'Datasource'.
+-- -   DataSchemaLocationS3 - Amazon S3 location of the 'DataSchema'.
 --
+-- -   DataSchema - A JSON string representing the schema. This is not
+--     required if 'DataSchemaUri' is specified.
 --
--- Sample - ' "{\"randomSeed\":\"some-random-seed\",\"splitting\":{\"percentBegin\":10,\"percentEnd\":60}}"'
+-- -   DataRearrangement - A JSON string representing the splitting
+--     requirement of a 'Datasource'.
 --
+--     Sample -
+--     ' \"{\\\"randomSeed\\\":\\\"some-random-seed\\\", \\\"splitting\\\":{\\\"percentBegin\\\":10,\\\"percentEnd\\\":60}}\"'
 --
-cdsfsDataSpec :: Lens' CreateDataSourceFromS3 S3DataSpec
-cdsfsDataSpec = lens _cdsfsDataSpec (\s a -> s { _cdsfsDataSpec = a })
-
-newtype CreateDataSourceFromS3Response = CreateDataSourceFromS3Response
-    { _cdsfsrDataSourceId :: Maybe Text
-    } deriving (Eq, Ord, Read, Show, Monoid)
+cdsfsDataSpec :: Lens' CreateDataSourceFromS S3DataSpec
+cdsfsDataSpec = lens _cdsfsDataSpec (\ s a -> s{_cdsfsDataSpec = a});
 
--- | 'CreateDataSourceFromS3Response' constructor.
---
--- The fields accessible through corresponding lenses are:
---
--- * 'cdsfsrDataSourceId' @::@ 'Maybe' 'Text'
---
-createDataSourceFromS3Response :: CreateDataSourceFromS3Response
-createDataSourceFromS3Response = CreateDataSourceFromS3Response
-    { _cdsfsrDataSourceId = Nothing
-    }
+instance AWSRequest CreateDataSourceFromS where
+        type Sv CreateDataSourceFromS = MachineLearning
+        type Rs CreateDataSourceFromS =
+             CreateDataSourceFromSResponse
+        request = postJSON
+        response
+          = receiveJSON
+              (\ s h x ->
+                 CreateDataSourceFromSResponse' <$>
+                   (x .?> "DataSourceId") <*> (pure (fromEnum s)))
 
--- | A user-supplied ID that uniquely identifies the datasource. This value should
--- be identical to the value of the 'DataSourceID' in the request.
-cdsfsrDataSourceId :: Lens' CreateDataSourceFromS3Response (Maybe Text)
-cdsfsrDataSourceId =
-    lens _cdsfsrDataSourceId (\s a -> s { _cdsfsrDataSourceId = a })
+instance ToHeaders CreateDataSourceFromS where
+        toHeaders
+          = const
+              (mconcat
+                 ["X-Amz-Target" =#
+                    ("AmazonML_20141212.CreateDataSourceFromS" ::
+                       ByteString),
+                  "Content-Type" =#
+                    ("application/x-amz-json-1.1" :: ByteString)])
 
-instance ToPath CreateDataSourceFromS3 where
-    toPath = const "/"
+instance ToJSON CreateDataSourceFromS where
+        toJSON CreateDataSourceFromS'{..}
+          = object
+              ["DataSourceName" .= _cdsfsDataSourceName,
+               "ComputeStatistics" .= _cdsfsComputeStatistics,
+               "DataSourceId" .= _cdsfsDataSourceId,
+               "DataSpec" .= _cdsfsDataSpec]
 
-instance ToQuery CreateDataSourceFromS3 where
-    toQuery = const mempty
+instance ToPath CreateDataSourceFromS where
+        toPath = const "/"
 
-instance ToHeaders CreateDataSourceFromS3
+instance ToQuery CreateDataSourceFromS where
+        toQuery = const mempty
 
-instance ToJSON CreateDataSourceFromS3 where
-    toJSON CreateDataSourceFromS3{..} = object
-        [ "DataSourceId"      .= _cdsfsDataSourceId
-        , "DataSourceName"    .= _cdsfsDataSourceName
-        , "DataSpec"          .= _cdsfsDataSpec
-        , "ComputeStatistics" .= _cdsfsComputeStatistics
-        ]
+-- | Represents the output of a CreateDataSourceFromS3 operation, and is an
+-- acknowledgement that Amazon ML received the request.
+--
+-- The CreateDataSourceFromS3 operation is asynchronous. You can poll for
+-- updates by using the GetBatchPrediction operation and checking the
+-- 'Status' parameter.
+--
+-- /See:/ 'createDataSourceFromSResponse' smart constructor.
+data CreateDataSourceFromSResponse = CreateDataSourceFromSResponse'
+    { _cdsfsrsDataSourceId :: !(Maybe Text)
+    , _cdsfsrsStatus       :: !Int
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
 
-instance AWSRequest CreateDataSourceFromS3 where
-    type Sv CreateDataSourceFromS3 = MachineLearning
-    type Rs CreateDataSourceFromS3 = CreateDataSourceFromS3Response
+-- | Creates a value of 'CreateDataSourceFromSResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'cdsfsrsDataSourceId'
+--
+-- * 'cdsfsrsStatus'
+createDataSourceFromSResponse
+    :: Int -- ^ 'cdsfsrsStatus'
+    -> CreateDataSourceFromSResponse
+createDataSourceFromSResponse pStatus_ =
+    CreateDataSourceFromSResponse'
+    { _cdsfsrsDataSourceId = Nothing
+    , _cdsfsrsStatus = pStatus_
+    }
 
-    request  = post "CreateDataSourceFromS3"
-    response = jsonResponse
+-- | A user-supplied ID that uniquely identifies the datasource. This value
+-- should be identical to the value of the 'DataSourceID' in the request.
+cdsfsrsDataSourceId :: Lens' CreateDataSourceFromSResponse (Maybe Text)
+cdsfsrsDataSourceId = lens _cdsfsrsDataSourceId (\ s a -> s{_cdsfsrsDataSourceId = a});
 
-instance FromJSON CreateDataSourceFromS3Response where
-    parseJSON = withObject "CreateDataSourceFromS3Response" $ \o -> CreateDataSourceFromS3Response
-        <$> o .:? "DataSourceId"
+-- | The response status code.
+cdsfsrsStatus :: Lens' CreateDataSourceFromSResponse Int
+cdsfsrsStatus = lens _cdsfsrsStatus (\ s a -> s{_cdsfsrsStatus = a});
diff --git a/gen/Network/AWS/MachineLearning/CreateEvaluation.hs b/gen/Network/AWS/MachineLearning/CreateEvaluation.hs
--- a/gen/Network/AWS/MachineLearning/CreateEvaluation.hs
+++ b/gen/Network/AWS/MachineLearning/CreateEvaluation.hs
@@ -1,163 +1,189 @@
-{-# 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.MachineLearning.CreateEvaluation
--- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>
--- License     : This Source Code Form is subject to the terms of
---               the Mozilla Public License, v. 2.0.
---               A copy of the MPL can be found in the LICENSE file or
---               you can obtain it at http://mozilla.org/MPL/2.0/.
+-- Copyright   : (c) 2013-2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
--- Stability   : experimental
+-- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
--- Derived from AWS service descriptions, licensed under Apache 2.0.
-
--- | Creates a new 'Evaluation' of an 'MLModel'. An 'MLModel' is evaluated on a set of
--- observations associated to a 'DataSource'. Like a 'DataSource' for an 'MLModel',
--- the 'DataSource' for an 'Evaluation' contains values for the Target Variable. The 'Evaluation' compares the predicted result for each observation to the actual
--- outcome and provides a summary so that you know how effective the 'MLModel'
--- functions on the test data. Evaluation generates a relevant performance
--- metric such as BinaryAUC, RegressionRMSE or MulticlassAvgFScore based on the
--- corresponding 'MLModelType': 'BINARY', 'REGRESSION' or 'MULTICLASS'.
+-- Creates a new 'Evaluation' of an 'MLModel'. An 'MLModel' is evaluated on
+-- a set of observations associated to a 'DataSource'. Like a 'DataSource'
+-- for an 'MLModel', the 'DataSource' for an 'Evaluation' contains values
+-- for the Target Variable. The 'Evaluation' compares the predicted result
+-- for each observation to the actual outcome and provides a summary so
+-- that you know how effective the 'MLModel' functions on the test data.
+-- Evaluation generates a relevant performance metric such as BinaryAUC,
+-- RegressionRMSE or MulticlassAvgFScore based on the corresponding
+-- 'MLModelType': 'BINARY', 'REGRESSION' or 'MULTICLASS'.
 --
--- 'CreateEvaluation' is an asynchronous operation. In response to 'CreateEvaluation', Amazon Machine Learning (Amazon ML) immediately returns and sets the
--- evaluation status to 'PENDING'. After the 'Evaluation' is created and ready for
--- use, Amazon ML sets the status to 'COMPLETED'.
+-- 'CreateEvaluation' is an asynchronous operation. In response to
+-- 'CreateEvaluation', Amazon Machine Learning (Amazon ML) immediately
+-- returns and sets the evaluation status to 'PENDING'. After the
+-- 'Evaluation' is created and ready for use, Amazon ML sets the status to
+-- 'COMPLETED'.
 --
--- You can use the 'GetEvaluation' operation to check progress of the evaluation
--- during the creation operation.
+-- You can use the GetEvaluation operation to check progress of the
+-- evaluation during the creation operation.
 --
--- <http://http://docs.aws.amazon.com/machine-learning/latest/APIReference/API_CreateEvaluation.html>
+-- /See:/ <http://http://docs.aws.amazon.com/machine-learning/latest/APIReference/API_CreateEvaluation.html AWS API Reference> for CreateEvaluation.
 module Network.AWS.MachineLearning.CreateEvaluation
     (
-    -- * Request
-      CreateEvaluation
-    -- ** Request constructor
-    , createEvaluation
-    -- ** Request lenses
-    , ceEvaluationDataSourceId
-    , ceEvaluationId
+    -- * Creating a Request
+      createEvaluation
+    , CreateEvaluation
+    -- * Request Lenses
     , ceEvaluationName
+    , ceEvaluationId
     , ceMLModelId
+    , ceEvaluationDataSourceId
 
-    -- * Response
-    , CreateEvaluationResponse
-    -- ** Response constructor
+    -- * Destructuring the Response
     , createEvaluationResponse
-    -- ** Response lenses
-    , cerEvaluationId
+    , CreateEvaluationResponse
+    -- * Response Lenses
+    , cersEvaluationId
+    , cersStatus
     ) where
 
-import Network.AWS.Data (Object)
-import Network.AWS.Prelude
-import Network.AWS.Request.JSON
-import Network.AWS.MachineLearning.Types
-import qualified GHC.Exts
+import           Network.AWS.MachineLearning.Types
+import           Network.AWS.MachineLearning.Types.Product
+import           Network.AWS.Prelude
+import           Network.AWS.Request
+import           Network.AWS.Response
 
-data CreateEvaluation = CreateEvaluation
-    { _ceEvaluationDataSourceId :: Text
-    , _ceEvaluationId           :: Text
-    , _ceEvaluationName         :: Maybe Text
-    , _ceMLModelId              :: Text
-    } deriving (Eq, Ord, Read, Show)
+-- | /See:/ 'createEvaluation' smart constructor.
+data CreateEvaluation = CreateEvaluation'
+    { _ceEvaluationName         :: !(Maybe Text)
+    , _ceEvaluationId           :: !Text
+    , _ceMLModelId              :: !Text
+    , _ceEvaluationDataSourceId :: !Text
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
 
--- | 'CreateEvaluation' constructor.
---
--- The fields accessible through corresponding lenses are:
+-- | Creates a value of 'CreateEvaluation' with the minimum fields required to make a request.
 --
--- * 'ceEvaluationDataSourceId' @::@ 'Text'
+-- Use one of the following lenses to modify other fields as desired:
 --
--- * 'ceEvaluationId' @::@ 'Text'
+-- * 'ceEvaluationName'
 --
--- * 'ceEvaluationName' @::@ 'Maybe' 'Text'
+-- * 'ceEvaluationId'
 --
--- * 'ceMLModelId' @::@ 'Text'
+-- * 'ceMLModelId'
 --
-createEvaluation :: Text -- ^ 'ceEvaluationId'
-                 -> Text -- ^ 'ceMLModelId'
-                 -> Text -- ^ 'ceEvaluationDataSourceId'
-                 -> CreateEvaluation
-createEvaluation p1 p2 p3 = CreateEvaluation
-    { _ceEvaluationId           = p1
-    , _ceMLModelId              = p2
-    , _ceEvaluationDataSourceId = p3
-    , _ceEvaluationName         = Nothing
+-- * 'ceEvaluationDataSourceId'
+createEvaluation
+    :: Text -- ^ 'ceEvaluationId'
+    -> Text -- ^ 'ceMLModelId'
+    -> Text -- ^ 'ceEvaluationDataSourceId'
+    -> CreateEvaluation
+createEvaluation pEvaluationId_ pMLModelId_ pEvaluationDataSourceId_ =
+    CreateEvaluation'
+    { _ceEvaluationName = Nothing
+    , _ceEvaluationId = pEvaluationId_
+    , _ceMLModelId = pMLModelId_
+    , _ceEvaluationDataSourceId = pEvaluationDataSourceId_
     }
 
--- | The ID of the 'DataSource' for the evaluation. The schema of the 'DataSource'
--- must match the schema used to create the 'MLModel'.
-ceEvaluationDataSourceId :: Lens' CreateEvaluation Text
-ceEvaluationDataSourceId =
-    lens _ceEvaluationDataSourceId
-        (\s a -> s { _ceEvaluationDataSourceId = a })
+-- | A user-supplied name or description of the 'Evaluation'.
+ceEvaluationName :: Lens' CreateEvaluation (Maybe Text)
+ceEvaluationName = lens _ceEvaluationName (\ s a -> s{_ceEvaluationName = a});
 
 -- | A user-supplied ID that uniquely identifies the 'Evaluation'.
 ceEvaluationId :: Lens' CreateEvaluation Text
-ceEvaluationId = lens _ceEvaluationId (\s a -> s { _ceEvaluationId = a })
-
--- | A user-supplied name or description of the 'Evaluation'.
-ceEvaluationName :: Lens' CreateEvaluation (Maybe Text)
-ceEvaluationName = lens _ceEvaluationName (\s a -> s { _ceEvaluationName = a })
+ceEvaluationId = lens _ceEvaluationId (\ s a -> s{_ceEvaluationId = a});
 
 -- | The ID of the 'MLModel' to evaluate.
 --
--- The schema used in creating the 'MLModel' must match the schema of the 'DataSource' used in the 'Evaluation'.
+-- The schema used in creating the 'MLModel' must match the schema of the
+-- 'DataSource' used in the 'Evaluation'.
 ceMLModelId :: Lens' CreateEvaluation Text
-ceMLModelId = lens _ceMLModelId (\s a -> s { _ceMLModelId = a })
+ceMLModelId = lens _ceMLModelId (\ s a -> s{_ceMLModelId = a});
 
-newtype CreateEvaluationResponse = CreateEvaluationResponse
-    { _cerEvaluationId :: Maybe Text
-    } deriving (Eq, Ord, Read, Show, Monoid)
+-- | The ID of the 'DataSource' for the evaluation. The schema of the
+-- 'DataSource' must match the schema used to create the 'MLModel'.
+ceEvaluationDataSourceId :: Lens' CreateEvaluation Text
+ceEvaluationDataSourceId = lens _ceEvaluationDataSourceId (\ s a -> s{_ceEvaluationDataSourceId = a});
 
--- | 'CreateEvaluationResponse' constructor.
---
--- The fields accessible through corresponding lenses are:
---
--- * 'cerEvaluationId' @::@ 'Maybe' 'Text'
---
-createEvaluationResponse :: CreateEvaluationResponse
-createEvaluationResponse = CreateEvaluationResponse
-    { _cerEvaluationId = Nothing
-    }
+instance AWSRequest CreateEvaluation where
+        type Sv CreateEvaluation = MachineLearning
+        type Rs CreateEvaluation = CreateEvaluationResponse
+        request = postJSON
+        response
+          = receiveJSON
+              (\ s h x ->
+                 CreateEvaluationResponse' <$>
+                   (x .?> "EvaluationId") <*> (pure (fromEnum s)))
 
--- | The user-supplied ID that uniquely identifies the 'Evaluation'. This value
--- should be identical to the value of the 'EvaluationId' in the request.
-cerEvaluationId :: Lens' CreateEvaluationResponse (Maybe Text)
-cerEvaluationId = lens _cerEvaluationId (\s a -> s { _cerEvaluationId = a })
+instance ToHeaders CreateEvaluation where
+        toHeaders
+          = const
+              (mconcat
+                 ["X-Amz-Target" =#
+                    ("AmazonML_20141212.CreateEvaluation" :: ByteString),
+                  "Content-Type" =#
+                    ("application/x-amz-json-1.1" :: ByteString)])
 
+instance ToJSON CreateEvaluation where
+        toJSON CreateEvaluation'{..}
+          = object
+              ["EvaluationName" .= _ceEvaluationName,
+               "EvaluationId" .= _ceEvaluationId,
+               "MLModelId" .= _ceMLModelId,
+               "EvaluationDataSourceId" .=
+                 _ceEvaluationDataSourceId]
+
 instance ToPath CreateEvaluation where
-    toPath = const "/"
+        toPath = const "/"
 
 instance ToQuery CreateEvaluation where
-    toQuery = const mempty
-
-instance ToHeaders CreateEvaluation
+        toQuery = const mempty
 
-instance ToJSON CreateEvaluation where
-    toJSON CreateEvaluation{..} = object
-        [ "EvaluationId"           .= _ceEvaluationId
-        , "EvaluationName"         .= _ceEvaluationName
-        , "MLModelId"              .= _ceMLModelId
-        , "EvaluationDataSourceId" .= _ceEvaluationDataSourceId
-        ]
+-- | Represents the output of a CreateEvaluation operation, and is an
+-- acknowledgement that Amazon ML received the request.
+--
+-- CreateEvaluation operation is asynchronous. You can poll for status
+-- updates by using the GetEvaluation operation and checking the 'Status'
+-- parameter.
+--
+-- /See:/ 'createEvaluationResponse' smart constructor.
+data CreateEvaluationResponse = CreateEvaluationResponse'
+    { _cersEvaluationId :: !(Maybe Text)
+    , _cersStatus       :: !Int
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
 
-instance AWSRequest CreateEvaluation where
-    type Sv CreateEvaluation = MachineLearning
-    type Rs CreateEvaluation = CreateEvaluationResponse
+-- | Creates a value of 'CreateEvaluationResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'cersEvaluationId'
+--
+-- * 'cersStatus'
+createEvaluationResponse
+    :: Int -- ^ 'cersStatus'
+    -> CreateEvaluationResponse
+createEvaluationResponse pStatus_ =
+    CreateEvaluationResponse'
+    { _cersEvaluationId = Nothing
+    , _cersStatus = pStatus_
+    }
 
-    request  = post "CreateEvaluation"
-    response = jsonResponse
+-- | The user-supplied ID that uniquely identifies the 'Evaluation'. This
+-- value should be identical to the value of the 'EvaluationId' in the
+-- request.
+cersEvaluationId :: Lens' CreateEvaluationResponse (Maybe Text)
+cersEvaluationId = lens _cersEvaluationId (\ s a -> s{_cersEvaluationId = a});
 
-instance FromJSON CreateEvaluationResponse where
-    parseJSON = withObject "CreateEvaluationResponse" $ \o -> CreateEvaluationResponse
-        <$> o .:? "EvaluationId"
+-- | The response status code.
+cersStatus :: Lens' CreateEvaluationResponse Int
+cersStatus = lens _cersStatus (\ s a -> s{_cersStatus = a});
diff --git a/gen/Network/AWS/MachineLearning/CreateMLModel.hs b/gen/Network/AWS/MachineLearning/CreateMLModel.hs
--- a/gen/Network/AWS/MachineLearning/CreateMLModel.hs
+++ b/gen/Network/AWS/MachineLearning/CreateMLModel.hs
@@ -1,235 +1,264 @@
-{-# 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.MachineLearning.CreateMLModel
--- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>
--- License     : This Source Code Form is subject to the terms of
---               the Mozilla Public License, v. 2.0.
---               A copy of the MPL can be found in the LICENSE file or
---               you can obtain it at http://mozilla.org/MPL/2.0/.
+-- Copyright   : (c) 2013-2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
--- Stability   : experimental
+-- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
--- Derived from AWS service descriptions, licensed under Apache 2.0.
-
--- | Creates a new 'MLModel' using the data files and the recipe as information
--- sources.
+-- Creates a new 'MLModel' using the data files and the recipe as
+-- information sources.
 --
--- An 'MLModel' is nearly immutable. Users can only update the 'MLModelName' and
--- the 'ScoreThreshold' in an 'MLModel' without creating a new 'MLModel'.
+-- An 'MLModel' is nearly immutable. Users can only update the
+-- 'MLModelName' and the 'ScoreThreshold' in an 'MLModel' without creating
+-- a new 'MLModel'.
 --
--- 'CreateMLModel' is an asynchronous operation. In response to 'CreateMLModel',
--- Amazon Machine Learning (Amazon ML) immediately returns and sets the 'MLModel'
--- status to 'PENDING'. After the 'MLModel' is created and ready for use, Amazon ML
--- sets the status to 'COMPLETED'.
+-- 'CreateMLModel' is an asynchronous operation. In response to
+-- 'CreateMLModel', Amazon Machine Learning (Amazon ML) immediately returns
+-- and sets the 'MLModel' status to 'PENDING'. After the 'MLModel' is
+-- created and ready for use, Amazon ML sets the status to 'COMPLETED'.
 --
--- You can use the 'GetMLModel' operation to check progress of the 'MLModel' during
--- the creation operation.
+-- You can use the GetMLModel operation to check progress of the 'MLModel'
+-- during the creation operation.
 --
--- 'CreateMLModel' requires a 'DataSource' with computed statistics, which can be
--- created by setting 'ComputeStatistics' to 'true' in 'CreateDataSourceFromRDS', 'CreateDataSourceFromS3', or 'CreateDataSourceFromRedshift' operations.
+-- CreateMLModel requires a 'DataSource' with computed statistics, which
+-- can be created by setting 'ComputeStatistics' to 'true' in
+-- CreateDataSourceFromRDS, CreateDataSourceFromS3, or
+-- CreateDataSourceFromRedshift operations.
 --
--- <http://http://docs.aws.amazon.com/machine-learning/latest/APIReference/API_CreateMLModel.html>
+-- /See:/ <http://http://docs.aws.amazon.com/machine-learning/latest/APIReference/API_CreateMLModel.html AWS API Reference> for CreateMLModel.
 module Network.AWS.MachineLearning.CreateMLModel
     (
-    -- * Request
-      CreateMLModel
-    -- ** Request constructor
-    , createMLModel
-    -- ** Request lenses
-    , cmlmMLModelId
+    -- * Creating a Request
+      createMLModel
+    , CreateMLModel
+    -- * Request Lenses
+    , cmlmRecipe
+    , cmlmRecipeURI
     , cmlmMLModelName
-    , cmlmMLModelType
     , cmlmParameters
-    , cmlmRecipe
-    , cmlmRecipeUri
+    , cmlmMLModelId
+    , cmlmMLModelType
     , cmlmTrainingDataSourceId
 
-    -- * Response
-    , CreateMLModelResponse
-    -- ** Response constructor
+    -- * Destructuring the Response
     , createMLModelResponse
-    -- ** Response lenses
-    , cmlmrMLModelId
+    , CreateMLModelResponse
+    -- * Response Lenses
+    , cmlmrsMLModelId
+    , cmlmrsStatus
     ) where
 
-import Network.AWS.Data (Object)
-import Network.AWS.Prelude
-import Network.AWS.Request.JSON
-import Network.AWS.MachineLearning.Types
-import qualified GHC.Exts
+import           Network.AWS.MachineLearning.Types
+import           Network.AWS.MachineLearning.Types.Product
+import           Network.AWS.Prelude
+import           Network.AWS.Request
+import           Network.AWS.Response
 
-data CreateMLModel = CreateMLModel
-    { _cmlmMLModelId            :: Text
-    , _cmlmMLModelName          :: Maybe Text
-    , _cmlmMLModelType          :: MLModelType
-    , _cmlmParameters           :: Map Text Text
-    , _cmlmRecipe               :: Maybe Text
-    , _cmlmRecipeUri            :: Maybe Text
-    , _cmlmTrainingDataSourceId :: Text
-    } deriving (Eq, Read, Show)
+-- | /See:/ 'createMLModel' smart constructor.
+data CreateMLModel = CreateMLModel'
+    { _cmlmRecipe               :: !(Maybe Text)
+    , _cmlmRecipeURI            :: !(Maybe Text)
+    , _cmlmMLModelName          :: !(Maybe Text)
+    , _cmlmParameters           :: !(Maybe (Map Text Text))
+    , _cmlmMLModelId            :: !Text
+    , _cmlmMLModelType          :: !MLModelType
+    , _cmlmTrainingDataSourceId :: !Text
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
 
--- | 'CreateMLModel' constructor.
---
--- The fields accessible through corresponding lenses are:
+-- | Creates a value of 'CreateMLModel' with the minimum fields required to make a request.
 --
--- * 'cmlmMLModelId' @::@ 'Text'
+-- Use one of the following lenses to modify other fields as desired:
 --
--- * 'cmlmMLModelName' @::@ 'Maybe' 'Text'
+-- * 'cmlmRecipe'
 --
--- * 'cmlmMLModelType' @::@ 'MLModelType'
+-- * 'cmlmRecipeURI'
 --
--- * 'cmlmParameters' @::@ 'HashMap' 'Text' 'Text'
+-- * 'cmlmMLModelName'
 --
--- * 'cmlmRecipe' @::@ 'Maybe' 'Text'
+-- * 'cmlmParameters'
 --
--- * 'cmlmRecipeUri' @::@ 'Maybe' 'Text'
+-- * 'cmlmMLModelId'
 --
--- * 'cmlmTrainingDataSourceId' @::@ 'Text'
+-- * 'cmlmMLModelType'
 --
-createMLModel :: Text -- ^ 'cmlmMLModelId'
-              -> MLModelType -- ^ 'cmlmMLModelType'
-              -> Text -- ^ 'cmlmTrainingDataSourceId'
-              -> CreateMLModel
-createMLModel p1 p2 p3 = CreateMLModel
-    { _cmlmMLModelId            = p1
-    , _cmlmMLModelType          = p2
-    , _cmlmTrainingDataSourceId = p3
-    , _cmlmMLModelName          = Nothing
-    , _cmlmParameters           = mempty
-    , _cmlmRecipe               = Nothing
-    , _cmlmRecipeUri            = Nothing
+-- * 'cmlmTrainingDataSourceId'
+createMLModel
+    :: Text -- ^ 'cmlmMLModelId'
+    -> MLModelType -- ^ 'cmlmMLModelType'
+    -> Text -- ^ 'cmlmTrainingDataSourceId'
+    -> CreateMLModel
+createMLModel pMLModelId_ pMLModelType_ pTrainingDataSourceId_ =
+    CreateMLModel'
+    { _cmlmRecipe = Nothing
+    , _cmlmRecipeURI = Nothing
+    , _cmlmMLModelName = Nothing
+    , _cmlmParameters = Nothing
+    , _cmlmMLModelId = pMLModelId_
+    , _cmlmMLModelType = pMLModelType_
+    , _cmlmTrainingDataSourceId = pTrainingDataSourceId_
     }
 
--- | A user-supplied ID that uniquely identifies the 'MLModel'.
-cmlmMLModelId :: Lens' CreateMLModel Text
-cmlmMLModelId = lens _cmlmMLModelId (\s a -> s { _cmlmMLModelId = a })
+-- | The data recipe for creating 'MLModel'. You must specify either the
+-- recipe or its URI. If you don’t specify a recipe or its URI, Amazon ML
+-- creates a default.
+cmlmRecipe :: Lens' CreateMLModel (Maybe Text)
+cmlmRecipe = lens _cmlmRecipe (\ s a -> s{_cmlmRecipe = a});
 
+-- | The Amazon Simple Storage Service (Amazon S3) location and file name
+-- that contains the 'MLModel' recipe. You must specify either the recipe
+-- or its URI. If you don’t specify a recipe or its URI, Amazon ML creates
+-- a default.
+cmlmRecipeURI :: Lens' CreateMLModel (Maybe Text)
+cmlmRecipeURI = lens _cmlmRecipeURI (\ s a -> s{_cmlmRecipeURI = a});
+
 -- | A user-supplied name or description of the 'MLModel'.
 cmlmMLModelName :: Lens' CreateMLModel (Maybe Text)
-cmlmMLModelName = lens _cmlmMLModelName (\s a -> s { _cmlmMLModelName = a })
-
--- | The category of supervised learning that this 'MLModel' will address. Choose
--- from the following types:
---
--- Choose 'REGRESSION' if the 'MLModel' will be used to predict a numeric value. Choose
--- 'BINARY' if the 'MLModel' result has two possible values. Choose 'MULTICLASS' if
--- the 'MLModel' result has a limited number of values.    For more information,
--- see the <http://docs.aws.amazon.com/machine-learning/latest/dg Amazon Machine Learning Developer Guide>.
-cmlmMLModelType :: Lens' CreateMLModel MLModelType
-cmlmMLModelType = lens _cmlmMLModelType (\s a -> s { _cmlmMLModelType = a })
+cmlmMLModelName = lens _cmlmMLModelName (\ s a -> s{_cmlmMLModelName = a});
 
--- | A list of the training parameters in the 'MLModel'. The list is implemented as
--- a map of key/value pairs.
+-- | A list of the training parameters in the 'MLModel'. The list is
+-- implemented as a map of key\/value pairs.
 --
 -- The following is the current set of training parameters:
 --
--- 'sgd.l1RegularizationAmount' - Coefficient regularization L1 norm. It
--- controls overfitting the data by penalizing large coefficients. This tends to
--- drive coefficients to zero, resulting in sparse feature set. If you use this
--- parameter, start by specifying a small value such as 1.0E-08.
---
--- The value is a double that ranges from 0 to MAX_DOUBLE. The default is not
--- to use L1 normalization. The parameter cannot be used when 'L2' is specified.
--- Use this parameter sparingly.
+-- -   'sgd.l1RegularizationAmount' - Coefficient regularization L1 norm.
+--     It controls overfitting the data by penalizing large coefficients.
+--     This tends to drive coefficients to zero, resulting in sparse
+--     feature set. If you use this parameter, start by specifying a small
+--     value such as 1.0E-08.
 --
--- 'sgd.l2RegularizationAmount' - Coefficient regularization L2 norm. It
--- controls overfitting the data by penalizing large coefficients. This tends to
--- drive coefficients to small, nonzero values. If you use this parameter, start
--- by specifying a small value such as 1.0E-08.
+--     The value is a double that ranges from 0 to MAX_DOUBLE. The default
+--     is not to use L1 normalization. The parameter cannot be used when
+--     'L2' is specified. Use this parameter sparingly.
 --
--- The valuseis a double that ranges from 0 to MAX_DOUBLE. The default is not
--- to use L2 normalization. This cannot be used when 'L1' is specified. Use this
--- parameter sparingly.
+-- -   'sgd.l2RegularizationAmount' - Coefficient regularization L2 norm.
+--     It controls overfitting the data by penalizing large coefficients.
+--     This tends to drive coefficients to small, nonzero values. If you
+--     use this parameter, start by specifying a small value such as
+--     1.0E-08.
 --
--- 'sgd.maxPasses' - Number of times that the training process traverses the
--- observations to build the 'MLModel'. The value is an integer that ranges from 1
--- to 10000. The default value is 10.
+--     The valuseis a double that ranges from 0 to MAX_DOUBLE. The default
+--     is not to use L2 normalization. This cannot be used when 'L1' is
+--     specified. Use this parameter sparingly.
 --
--- 'sgd.maxMLModelSizeInBytes' - Maximum allowed size of the model. Depending on
--- the input data, the size of the model might affect its performance.
+-- -   'sgd.maxPasses' - Number of times that the training process
+--     traverses the observations to build the 'MLModel'. The value is an
+--     integer that ranges from 1 to 10000. The default value is 10.
 --
--- The value is an integer that ranges from 100000 to 2147483648. The default
--- value is 33554432.
+-- -   'sgd.maxMLModelSizeInBytes' - Maximum allowed size of the model.
+--     Depending on the input data, the size of the model might affect its
+--     performance.
 --
+--     The value is an integer that ranges from 100000 to 2147483648. The
+--     default value is 33554432.
 --
 cmlmParameters :: Lens' CreateMLModel (HashMap Text Text)
-cmlmParameters = lens _cmlmParameters (\s a -> s { _cmlmParameters = a }) . _Map
+cmlmParameters = lens _cmlmParameters (\ s a -> s{_cmlmParameters = a}) . _Default . _Map;
 
--- | The data recipe for creating 'MLModel'. You must specify either the recipe or
--- its URI. If you don’t specify a recipe or its URI, Amazon ML creates a
--- default.
-cmlmRecipe :: Lens' CreateMLModel (Maybe Text)
-cmlmRecipe = lens _cmlmRecipe (\s a -> s { _cmlmRecipe = a })
+-- | A user-supplied ID that uniquely identifies the 'MLModel'.
+cmlmMLModelId :: Lens' CreateMLModel Text
+cmlmMLModelId = lens _cmlmMLModelId (\ s a -> s{_cmlmMLModelId = a});
 
--- | The Amazon Simple Storage Service (Amazon S3) location and file name that
--- contains the 'MLModel' recipe. You must specify either the recipe or its URI.
--- If you don’t specify a recipe or its URI, Amazon ML creates a default.
-cmlmRecipeUri :: Lens' CreateMLModel (Maybe Text)
-cmlmRecipeUri = lens _cmlmRecipeUri (\s a -> s { _cmlmRecipeUri = a })
+-- | The category of supervised learning that this 'MLModel' will address.
+-- Choose from the following types:
+--
+-- -   Choose 'REGRESSION' if the 'MLModel' will be used to predict a
+--     numeric value.
+-- -   Choose 'BINARY' if the 'MLModel' result has two possible values.
+-- -   Choose 'MULTICLASS' if the 'MLModel' result has a limited number of
+--     values.
+--
+-- For more information, see the
+-- <http://docs.aws.amazon.com/machine-learning/latest/dg Amazon Machine Learning Developer Guide>.
+cmlmMLModelType :: Lens' CreateMLModel MLModelType
+cmlmMLModelType = lens _cmlmMLModelType (\ s a -> s{_cmlmMLModelType = a});
 
 -- | The 'DataSource' that points to the training data.
 cmlmTrainingDataSourceId :: Lens' CreateMLModel Text
-cmlmTrainingDataSourceId =
-    lens _cmlmTrainingDataSourceId
-        (\s a -> s { _cmlmTrainingDataSourceId = a })
+cmlmTrainingDataSourceId = lens _cmlmTrainingDataSourceId (\ s a -> s{_cmlmTrainingDataSourceId = a});
 
-newtype CreateMLModelResponse = CreateMLModelResponse
-    { _cmlmrMLModelId :: Maybe Text
-    } deriving (Eq, Ord, Read, Show, Monoid)
+instance AWSRequest CreateMLModel where
+        type Sv CreateMLModel = MachineLearning
+        type Rs CreateMLModel = CreateMLModelResponse
+        request = postJSON
+        response
+          = receiveJSON
+              (\ s h x ->
+                 CreateMLModelResponse' <$>
+                   (x .?> "MLModelId") <*> (pure (fromEnum s)))
 
--- | 'CreateMLModelResponse' constructor.
---
--- The fields accessible through corresponding lenses are:
---
--- * 'cmlmrMLModelId' @::@ 'Maybe' 'Text'
---
-createMLModelResponse :: CreateMLModelResponse
-createMLModelResponse = CreateMLModelResponse
-    { _cmlmrMLModelId = Nothing
-    }
+instance ToHeaders CreateMLModel where
+        toHeaders
+          = const
+              (mconcat
+                 ["X-Amz-Target" =#
+                    ("AmazonML_20141212.CreateMLModel" :: ByteString),
+                  "Content-Type" =#
+                    ("application/x-amz-json-1.1" :: ByteString)])
 
--- | A user-supplied ID that uniquely identifies the 'MLModel'. This value should be
--- identical to the value of the 'MLModelId' in the request.
-cmlmrMLModelId :: Lens' CreateMLModelResponse (Maybe Text)
-cmlmrMLModelId = lens _cmlmrMLModelId (\s a -> s { _cmlmrMLModelId = a })
+instance ToJSON CreateMLModel where
+        toJSON CreateMLModel'{..}
+          = object
+              ["Recipe" .= _cmlmRecipe,
+               "RecipeUri" .= _cmlmRecipeURI,
+               "MLModelName" .= _cmlmMLModelName,
+               "Parameters" .= _cmlmParameters,
+               "MLModelId" .= _cmlmMLModelId,
+               "MLModelType" .= _cmlmMLModelType,
+               "TrainingDataSourceId" .= _cmlmTrainingDataSourceId]
 
 instance ToPath CreateMLModel where
-    toPath = const "/"
+        toPath = const "/"
 
 instance ToQuery CreateMLModel where
-    toQuery = const mempty
-
-instance ToHeaders CreateMLModel
+        toQuery = const mempty
 
-instance ToJSON CreateMLModel where
-    toJSON CreateMLModel{..} = object
-        [ "MLModelId"            .= _cmlmMLModelId
-        , "MLModelName"          .= _cmlmMLModelName
-        , "MLModelType"          .= _cmlmMLModelType
-        , "Parameters"           .= _cmlmParameters
-        , "TrainingDataSourceId" .= _cmlmTrainingDataSourceId
-        , "Recipe"               .= _cmlmRecipe
-        , "RecipeUri"            .= _cmlmRecipeUri
-        ]
+-- | Represents the output of a CreateMLModel operation, and is an
+-- acknowledgement that Amazon ML received the request.
+--
+-- The CreateMLModel operation is asynchronous. You can poll for status
+-- updates by using the GetMLModel operation and checking the 'Status'
+-- parameter.
+--
+-- /See:/ 'createMLModelResponse' smart constructor.
+data CreateMLModelResponse = CreateMLModelResponse'
+    { _cmlmrsMLModelId :: !(Maybe Text)
+    , _cmlmrsStatus    :: !Int
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
 
-instance AWSRequest CreateMLModel where
-    type Sv CreateMLModel = MachineLearning
-    type Rs CreateMLModel = CreateMLModelResponse
+-- | Creates a value of 'CreateMLModelResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'cmlmrsMLModelId'
+--
+-- * 'cmlmrsStatus'
+createMLModelResponse
+    :: Int -- ^ 'cmlmrsStatus'
+    -> CreateMLModelResponse
+createMLModelResponse pStatus_ =
+    CreateMLModelResponse'
+    { _cmlmrsMLModelId = Nothing
+    , _cmlmrsStatus = pStatus_
+    }
 
-    request  = post "CreateMLModel"
-    response = jsonResponse
+-- | A user-supplied ID that uniquely identifies the 'MLModel'. This value
+-- should be identical to the value of the 'MLModelId' in the request.
+cmlmrsMLModelId :: Lens' CreateMLModelResponse (Maybe Text)
+cmlmrsMLModelId = lens _cmlmrsMLModelId (\ s a -> s{_cmlmrsMLModelId = a});
 
-instance FromJSON CreateMLModelResponse where
-    parseJSON = withObject "CreateMLModelResponse" $ \o -> CreateMLModelResponse
-        <$> o .:? "MLModelId"
+-- | The response status code.
+cmlmrsStatus :: Lens' CreateMLModelResponse Int
+cmlmrsStatus = lens _cmlmrsStatus (\ s a -> s{_cmlmrsStatus = a});
diff --git a/gen/Network/AWS/MachineLearning/CreateRealtimeEndpoint.hs b/gen/Network/AWS/MachineLearning/CreateRealtimeEndpoint.hs
--- a/gen/Network/AWS/MachineLearning/CreateRealtimeEndpoint.hs
+++ b/gen/Network/AWS/MachineLearning/CreateRealtimeEndpoint.hs
@@ -1,127 +1,149 @@
-{-# 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.MachineLearning.CreateRealtimeEndpoint
--- 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 real-time endpoint for the 'MLModel'. The endpoint contains the URI
--- of the 'MLModel'; that is, the location to send real-time prediction requests
--- for the specified 'MLModel'.
+-- Creates a real-time endpoint for the 'MLModel'. The endpoint contains
+-- the URI of the 'MLModel'; that is, the location to send real-time
+-- prediction requests for the specified 'MLModel'.
 --
--- <http://http://docs.aws.amazon.com/machine-learning/latest/APIReference/API_CreateRealtimeEndpoint.html>
+-- /See:/ <http://http://docs.aws.amazon.com/machine-learning/latest/APIReference/API_CreateRealtimeEndpoint.html AWS API Reference> for CreateRealtimeEndpoint.
 module Network.AWS.MachineLearning.CreateRealtimeEndpoint
     (
-    -- * Request
-      CreateRealtimeEndpoint
-    -- ** Request constructor
-    , createRealtimeEndpoint
-    -- ** Request lenses
+    -- * Creating a Request
+      createRealtimeEndpoint
+    , CreateRealtimeEndpoint
+    -- * Request Lenses
     , creMLModelId
 
-    -- * Response
-    , CreateRealtimeEndpointResponse
-    -- ** Response constructor
+    -- * Destructuring the Response
     , createRealtimeEndpointResponse
-    -- ** Response lenses
-    , crerMLModelId
-    , crerRealtimeEndpointInfo
+    , CreateRealtimeEndpointResponse
+    -- * Response Lenses
+    , crersRealtimeEndpointInfo
+    , crersMLModelId
+    , crersStatus
     ) where
 
-import Network.AWS.Data (Object)
-import Network.AWS.Prelude
-import Network.AWS.Request.JSON
-import Network.AWS.MachineLearning.Types
-import qualified GHC.Exts
+import           Network.AWS.MachineLearning.Types
+import           Network.AWS.MachineLearning.Types.Product
+import           Network.AWS.Prelude
+import           Network.AWS.Request
+import           Network.AWS.Response
 
-newtype CreateRealtimeEndpoint = CreateRealtimeEndpoint
+-- | /See:/ 'createRealtimeEndpoint' smart constructor.
+newtype CreateRealtimeEndpoint = CreateRealtimeEndpoint'
     { _creMLModelId :: Text
-    } deriving (Eq, Ord, Read, Show, Monoid, IsString)
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
 
--- | 'CreateRealtimeEndpoint' constructor.
---
--- The fields accessible through corresponding lenses are:
+-- | Creates a value of 'CreateRealtimeEndpoint' with the minimum fields required to make a request.
 --
--- * 'creMLModelId' @::@ 'Text'
+-- Use one of the following lenses to modify other fields as desired:
 --
-createRealtimeEndpoint :: Text -- ^ 'creMLModelId'
-                       -> CreateRealtimeEndpoint
-createRealtimeEndpoint p1 = CreateRealtimeEndpoint
-    { _creMLModelId = p1
+-- * 'creMLModelId'
+createRealtimeEndpoint
+    :: Text -- ^ 'creMLModelId'
+    -> CreateRealtimeEndpoint
+createRealtimeEndpoint pMLModelId_ =
+    CreateRealtimeEndpoint'
+    { _creMLModelId = pMLModelId_
     }
 
 -- | The ID assigned to the 'MLModel' during creation.
 creMLModelId :: Lens' CreateRealtimeEndpoint Text
-creMLModelId = lens _creMLModelId (\s a -> s { _creMLModelId = a })
-
-data CreateRealtimeEndpointResponse = CreateRealtimeEndpointResponse
-    { _crerMLModelId            :: Maybe Text
-    , _crerRealtimeEndpointInfo :: Maybe RealtimeEndpointInfo
-    } deriving (Eq, Read, Show)
+creMLModelId = lens _creMLModelId (\ s a -> s{_creMLModelId = a});
 
--- | 'CreateRealtimeEndpointResponse' constructor.
---
--- The fields accessible through corresponding lenses are:
---
--- * 'crerMLModelId' @::@ 'Maybe' 'Text'
---
--- * 'crerRealtimeEndpointInfo' @::@ 'Maybe' 'RealtimeEndpointInfo'
---
-createRealtimeEndpointResponse :: CreateRealtimeEndpointResponse
-createRealtimeEndpointResponse = CreateRealtimeEndpointResponse
-    { _crerMLModelId            = Nothing
-    , _crerRealtimeEndpointInfo = Nothing
-    }
+instance AWSRequest CreateRealtimeEndpoint where
+        type Sv CreateRealtimeEndpoint = MachineLearning
+        type Rs CreateRealtimeEndpoint =
+             CreateRealtimeEndpointResponse
+        request = postJSON
+        response
+          = receiveJSON
+              (\ s h x ->
+                 CreateRealtimeEndpointResponse' <$>
+                   (x .?> "RealtimeEndpointInfo") <*>
+                     (x .?> "MLModelId")
+                     <*> (pure (fromEnum s)))
 
--- | A user-supplied ID that uniquely identifies the 'MLModel'. This value should be
--- identical to the value of the 'MLModelId' in the request.
-crerMLModelId :: Lens' CreateRealtimeEndpointResponse (Maybe Text)
-crerMLModelId = lens _crerMLModelId (\s a -> s { _crerMLModelId = a })
+instance ToHeaders CreateRealtimeEndpoint where
+        toHeaders
+          = const
+              (mconcat
+                 ["X-Amz-Target" =#
+                    ("AmazonML_20141212.CreateRealtimeEndpoint" ::
+                       ByteString),
+                  "Content-Type" =#
+                    ("application/x-amz-json-1.1" :: ByteString)])
 
--- | The endpoint information of the 'MLModel'
-crerRealtimeEndpointInfo :: Lens' CreateRealtimeEndpointResponse (Maybe RealtimeEndpointInfo)
-crerRealtimeEndpointInfo =
-    lens _crerRealtimeEndpointInfo
-        (\s a -> s { _crerRealtimeEndpointInfo = a })
+instance ToJSON CreateRealtimeEndpoint where
+        toJSON CreateRealtimeEndpoint'{..}
+          = object ["MLModelId" .= _creMLModelId]
 
 instance ToPath CreateRealtimeEndpoint where
-    toPath = const "/"
+        toPath = const "/"
 
 instance ToQuery CreateRealtimeEndpoint where
-    toQuery = const mempty
+        toQuery = const mempty
 
-instance ToHeaders CreateRealtimeEndpoint
+-- | Represents the output of an CreateRealtimeEndpoint operation.
+--
+-- The result contains the 'MLModelId' and the endpoint information for the
+-- 'MLModel'.
+--
+-- The endpoint information includes the URI of the 'MLModel'; that is, the
+-- location to send online prediction requests for the specified 'MLModel'.
+--
+-- /See:/ 'createRealtimeEndpointResponse' smart constructor.
+data CreateRealtimeEndpointResponse = CreateRealtimeEndpointResponse'
+    { _crersRealtimeEndpointInfo :: !(Maybe RealtimeEndpointInfo)
+    , _crersMLModelId            :: !(Maybe Text)
+    , _crersStatus               :: !Int
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
 
-instance ToJSON CreateRealtimeEndpoint where
-    toJSON CreateRealtimeEndpoint{..} = object
-        [ "MLModelId" .= _creMLModelId
-        ]
+-- | Creates a value of 'CreateRealtimeEndpointResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'crersRealtimeEndpointInfo'
+--
+-- * 'crersMLModelId'
+--
+-- * 'crersStatus'
+createRealtimeEndpointResponse
+    :: Int -- ^ 'crersStatus'
+    -> CreateRealtimeEndpointResponse
+createRealtimeEndpointResponse pStatus_ =
+    CreateRealtimeEndpointResponse'
+    { _crersRealtimeEndpointInfo = Nothing
+    , _crersMLModelId = Nothing
+    , _crersStatus = pStatus_
+    }
 
-instance AWSRequest CreateRealtimeEndpoint where
-    type Sv CreateRealtimeEndpoint = MachineLearning
-    type Rs CreateRealtimeEndpoint = CreateRealtimeEndpointResponse
+-- | The endpoint information of the 'MLModel'
+crersRealtimeEndpointInfo :: Lens' CreateRealtimeEndpointResponse (Maybe RealtimeEndpointInfo)
+crersRealtimeEndpointInfo = lens _crersRealtimeEndpointInfo (\ s a -> s{_crersRealtimeEndpointInfo = a});
 
-    request  = post "CreateRealtimeEndpoint"
-    response = jsonResponse
+-- | A user-supplied ID that uniquely identifies the 'MLModel'. This value
+-- should be identical to the value of the 'MLModelId' in the request.
+crersMLModelId :: Lens' CreateRealtimeEndpointResponse (Maybe Text)
+crersMLModelId = lens _crersMLModelId (\ s a -> s{_crersMLModelId = a});
 
-instance FromJSON CreateRealtimeEndpointResponse where
-    parseJSON = withObject "CreateRealtimeEndpointResponse" $ \o -> CreateRealtimeEndpointResponse
-        <$> o .:? "MLModelId"
-        <*> o .:? "RealtimeEndpointInfo"
+-- | The response status code.
+crersStatus :: Lens' CreateRealtimeEndpointResponse Int
+crersStatus = lens _crersStatus (\ s a -> s{_crersStatus = a});
diff --git a/gen/Network/AWS/MachineLearning/DeleteBatchPrediction.hs b/gen/Network/AWS/MachineLearning/DeleteBatchPrediction.hs
--- a/gen/Network/AWS/MachineLearning/DeleteBatchPrediction.hs
+++ b/gen/Network/AWS/MachineLearning/DeleteBatchPrediction.hs
@@ -1,121 +1,145 @@
-{-# LANGUAGE DataKinds                   #-}
-{-# LANGUAGE DeriveGeneric               #-}
-{-# LANGUAGE FlexibleInstances           #-}
-{-# LANGUAGE GeneralizedNewtypeDeriving  #-}
-{-# LANGUAGE LambdaCase                  #-}
-{-# LANGUAGE NoImplicitPrelude           #-}
-{-# LANGUAGE OverloadedStrings           #-}
-{-# LANGUAGE RecordWildCards             #-}
-{-# LANGUAGE TypeFamilies                #-}
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE OverloadedStrings  #-}
+{-# LANGUAGE RecordWildCards    #-}
+{-# LANGUAGE TypeFamilies       #-}
 
 {-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds   #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
 
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
 -- Module      : Network.AWS.MachineLearning.DeleteBatchPrediction
--- 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.
-
--- | Assigns the DELETED status to a 'BatchPrediction', rendering it unusable.
+-- Assigns the DELETED status to a 'BatchPrediction', rendering it
+-- unusable.
 --
--- After using the 'DeleteBatchPrediction' operation, you can use the 'GetBatchPrediction' operation to verify that the status of the 'BatchPrediction' changed to
--- DELETED.
+-- After using the 'DeleteBatchPrediction' operation, you can use the
+-- GetBatchPrediction operation to verify that the status of the
+-- 'BatchPrediction' changed to DELETED.
 --
--- Caution The result of the 'DeleteBatchPrediction' operation is irreversible.
+-- Caution
 --
+-- The result of the 'DeleteBatchPrediction' operation is irreversible.
 --
--- <http://http://docs.aws.amazon.com/machine-learning/latest/APIReference/API_DeleteBatchPrediction.html>
+-- /See:/ <http://http://docs.aws.amazon.com/machine-learning/latest/APIReference/API_DeleteBatchPrediction.html AWS API Reference> for DeleteBatchPrediction.
 module Network.AWS.MachineLearning.DeleteBatchPrediction
     (
-    -- * Request
-      DeleteBatchPrediction
-    -- ** Request constructor
-    , deleteBatchPrediction
-    -- ** Request lenses
+    -- * Creating a Request
+      deleteBatchPrediction
+    , DeleteBatchPrediction
+    -- * Request Lenses
     , dbpBatchPredictionId
 
-    -- * Response
-    , DeleteBatchPredictionResponse
-    -- ** Response constructor
+    -- * Destructuring the Response
     , deleteBatchPredictionResponse
-    -- ** Response lenses
-    , dbprBatchPredictionId
+    , DeleteBatchPredictionResponse
+    -- * Response Lenses
+    , dbprsBatchPredictionId
+    , dbprsStatus
     ) where
 
-import Network.AWS.Data (Object)
-import Network.AWS.Prelude
-import Network.AWS.Request.JSON
-import Network.AWS.MachineLearning.Types
-import qualified GHC.Exts
+import           Network.AWS.MachineLearning.Types
+import           Network.AWS.MachineLearning.Types.Product
+import           Network.AWS.Prelude
+import           Network.AWS.Request
+import           Network.AWS.Response
 
-newtype DeleteBatchPrediction = DeleteBatchPrediction
+-- | /See:/ 'deleteBatchPrediction' smart constructor.
+newtype DeleteBatchPrediction = DeleteBatchPrediction'
     { _dbpBatchPredictionId :: Text
-    } deriving (Eq, Ord, Read, Show, Monoid, IsString)
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
 
--- | 'DeleteBatchPrediction' constructor.
---
--- The fields accessible through corresponding lenses are:
+-- | Creates a value of 'DeleteBatchPrediction' with the minimum fields required to make a request.
 --
--- * 'dbpBatchPredictionId' @::@ 'Text'
+-- Use one of the following lenses to modify other fields as desired:
 --
-deleteBatchPrediction :: Text -- ^ 'dbpBatchPredictionId'
-                      -> DeleteBatchPrediction
-deleteBatchPrediction p1 = DeleteBatchPrediction
-    { _dbpBatchPredictionId = p1
+-- * 'dbpBatchPredictionId'
+deleteBatchPrediction
+    :: Text -- ^ 'dbpBatchPredictionId'
+    -> DeleteBatchPrediction
+deleteBatchPrediction pBatchPredictionId_ =
+    DeleteBatchPrediction'
+    { _dbpBatchPredictionId = pBatchPredictionId_
     }
 
 -- | A user-supplied ID that uniquely identifies the 'BatchPrediction'.
 dbpBatchPredictionId :: Lens' DeleteBatchPrediction Text
-dbpBatchPredictionId =
-    lens _dbpBatchPredictionId (\s a -> s { _dbpBatchPredictionId = a })
+dbpBatchPredictionId = lens _dbpBatchPredictionId (\ s a -> s{_dbpBatchPredictionId = a});
 
-newtype DeleteBatchPredictionResponse = DeleteBatchPredictionResponse
-    { _dbprBatchPredictionId :: Maybe Text
-    } deriving (Eq, Ord, Read, Show, Monoid)
+instance AWSRequest DeleteBatchPrediction where
+        type Sv DeleteBatchPrediction = MachineLearning
+        type Rs DeleteBatchPrediction =
+             DeleteBatchPredictionResponse
+        request = postJSON
+        response
+          = receiveJSON
+              (\ s h x ->
+                 DeleteBatchPredictionResponse' <$>
+                   (x .?> "BatchPredictionId") <*> (pure (fromEnum s)))
 
--- | 'DeleteBatchPredictionResponse' constructor.
---
--- The fields accessible through corresponding lenses are:
---
--- * 'dbprBatchPredictionId' @::@ 'Maybe' 'Text'
---
-deleteBatchPredictionResponse :: DeleteBatchPredictionResponse
-deleteBatchPredictionResponse = DeleteBatchPredictionResponse
-    { _dbprBatchPredictionId = Nothing
-    }
+instance ToHeaders DeleteBatchPrediction where
+        toHeaders
+          = const
+              (mconcat
+                 ["X-Amz-Target" =#
+                    ("AmazonML_20141212.DeleteBatchPrediction" ::
+                       ByteString),
+                  "Content-Type" =#
+                    ("application/x-amz-json-1.1" :: ByteString)])
 
--- | A user-supplied ID that uniquely identifies the 'BatchPrediction'. This value
--- should be identical to the value of the 'BatchPredictionID' in the request.
-dbprBatchPredictionId :: Lens' DeleteBatchPredictionResponse (Maybe Text)
-dbprBatchPredictionId =
-    lens _dbprBatchPredictionId (\s a -> s { _dbprBatchPredictionId = a })
+instance ToJSON DeleteBatchPrediction where
+        toJSON DeleteBatchPrediction'{..}
+          = object
+              ["BatchPredictionId" .= _dbpBatchPredictionId]
 
 instance ToPath DeleteBatchPrediction where
-    toPath = const "/"
+        toPath = const "/"
 
 instance ToQuery DeleteBatchPrediction where
-    toQuery = const mempty
-
-instance ToHeaders DeleteBatchPrediction
+        toQuery = const mempty
 
-instance ToJSON DeleteBatchPrediction where
-    toJSON DeleteBatchPrediction{..} = object
-        [ "BatchPredictionId" .= _dbpBatchPredictionId
-        ]
+-- | Represents the output of a DeleteBatchPrediction operation.
+--
+-- You can use the GetBatchPrediction operation and check the value of the
+-- 'Status' parameter to see whether a 'BatchPrediction' is marked as
+-- 'DELETED'.
+--
+-- /See:/ 'deleteBatchPredictionResponse' smart constructor.
+data DeleteBatchPredictionResponse = DeleteBatchPredictionResponse'
+    { _dbprsBatchPredictionId :: !(Maybe Text)
+    , _dbprsStatus            :: !Int
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
 
-instance AWSRequest DeleteBatchPrediction where
-    type Sv DeleteBatchPrediction = MachineLearning
-    type Rs DeleteBatchPrediction = DeleteBatchPredictionResponse
+-- | Creates a value of 'DeleteBatchPredictionResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'dbprsBatchPredictionId'
+--
+-- * 'dbprsStatus'
+deleteBatchPredictionResponse
+    :: Int -- ^ 'dbprsStatus'
+    -> DeleteBatchPredictionResponse
+deleteBatchPredictionResponse pStatus_ =
+    DeleteBatchPredictionResponse'
+    { _dbprsBatchPredictionId = Nothing
+    , _dbprsStatus = pStatus_
+    }
 
-    request  = post "DeleteBatchPrediction"
-    response = jsonResponse
+-- | A user-supplied ID that uniquely identifies the 'BatchPrediction'. This
+-- value should be identical to the value of the 'BatchPredictionID' in the
+-- request.
+dbprsBatchPredictionId :: Lens' DeleteBatchPredictionResponse (Maybe Text)
+dbprsBatchPredictionId = lens _dbprsBatchPredictionId (\ s a -> s{_dbprsBatchPredictionId = a});
 
-instance FromJSON DeleteBatchPredictionResponse where
-    parseJSON = withObject "DeleteBatchPredictionResponse" $ \o -> DeleteBatchPredictionResponse
-        <$> o .:? "BatchPredictionId"
+-- | The response status code.
+dbprsStatus :: Lens' DeleteBatchPredictionResponse Int
+dbprsStatus = lens _dbprsStatus (\ s a -> s{_dbprsStatus = a});
diff --git a/gen/Network/AWS/MachineLearning/DeleteDataSource.hs b/gen/Network/AWS/MachineLearning/DeleteDataSource.hs
--- a/gen/Network/AWS/MachineLearning/DeleteDataSource.hs
+++ b/gen/Network/AWS/MachineLearning/DeleteDataSource.hs
@@ -1,119 +1,136 @@
-{-# 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.MachineLearning.DeleteDataSource
--- 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.
-
--- | Assigns the DELETED status to a 'DataSource', rendering it unusable.
+-- Assigns the DELETED status to a 'DataSource', rendering it unusable.
 --
--- After using the 'DeleteDataSource' operation, you can use the 'GetDataSource'
--- operation to verify that the status of the 'DataSource' changed to DELETED.
+-- After using the 'DeleteDataSource' operation, you can use the
+-- GetDataSource operation to verify that the status of the 'DataSource'
+-- changed to DELETED.
 --
--- Caution The results of the 'DeleteDataSource' operation are irreversible.
+-- Caution
 --
+-- The results of the 'DeleteDataSource' operation are irreversible.
 --
--- <http://http://docs.aws.amazon.com/machine-learning/latest/APIReference/API_DeleteDataSource.html>
+-- /See:/ <http://http://docs.aws.amazon.com/machine-learning/latest/APIReference/API_DeleteDataSource.html AWS API Reference> for DeleteDataSource.
 module Network.AWS.MachineLearning.DeleteDataSource
     (
-    -- * Request
-      DeleteDataSource
-    -- ** Request constructor
-    , deleteDataSource
-    -- ** Request lenses
+    -- * Creating a Request
+      deleteDataSource
+    , DeleteDataSource
+    -- * Request Lenses
     , ddsDataSourceId
 
-    -- * Response
-    , DeleteDataSourceResponse
-    -- ** Response constructor
+    -- * Destructuring the Response
     , deleteDataSourceResponse
-    -- ** Response lenses
-    , ddsrDataSourceId
+    , DeleteDataSourceResponse
+    -- * Response Lenses
+    , ddsrsDataSourceId
+    , ddsrsStatus
     ) where
 
-import Network.AWS.Data (Object)
-import Network.AWS.Prelude
-import Network.AWS.Request.JSON
-import Network.AWS.MachineLearning.Types
-import qualified GHC.Exts
+import           Network.AWS.MachineLearning.Types
+import           Network.AWS.MachineLearning.Types.Product
+import           Network.AWS.Prelude
+import           Network.AWS.Request
+import           Network.AWS.Response
 
-newtype DeleteDataSource = DeleteDataSource
+-- | /See:/ 'deleteDataSource' smart constructor.
+newtype DeleteDataSource = DeleteDataSource'
     { _ddsDataSourceId :: Text
-    } deriving (Eq, Ord, Read, Show, Monoid, IsString)
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
 
--- | 'DeleteDataSource' constructor.
---
--- The fields accessible through corresponding lenses are:
+-- | Creates a value of 'DeleteDataSource' with the minimum fields required to make a request.
 --
--- * 'ddsDataSourceId' @::@ 'Text'
+-- Use one of the following lenses to modify other fields as desired:
 --
-deleteDataSource :: Text -- ^ 'ddsDataSourceId'
-                 -> DeleteDataSource
-deleteDataSource p1 = DeleteDataSource
-    { _ddsDataSourceId = p1
+-- * 'ddsDataSourceId'
+deleteDataSource
+    :: Text -- ^ 'ddsDataSourceId'
+    -> DeleteDataSource
+deleteDataSource pDataSourceId_ =
+    DeleteDataSource'
+    { _ddsDataSourceId = pDataSourceId_
     }
 
 -- | A user-supplied ID that uniquely identifies the 'DataSource'.
 ddsDataSourceId :: Lens' DeleteDataSource Text
-ddsDataSourceId = lens _ddsDataSourceId (\s a -> s { _ddsDataSourceId = a })
+ddsDataSourceId = lens _ddsDataSourceId (\ s a -> s{_ddsDataSourceId = a});
 
-newtype DeleteDataSourceResponse = DeleteDataSourceResponse
-    { _ddsrDataSourceId :: Maybe Text
-    } deriving (Eq, Ord, Read, Show, Monoid)
+instance AWSRequest DeleteDataSource where
+        type Sv DeleteDataSource = MachineLearning
+        type Rs DeleteDataSource = DeleteDataSourceResponse
+        request = postJSON
+        response
+          = receiveJSON
+              (\ s h x ->
+                 DeleteDataSourceResponse' <$>
+                   (x .?> "DataSourceId") <*> (pure (fromEnum s)))
 
--- | 'DeleteDataSourceResponse' constructor.
---
--- The fields accessible through corresponding lenses are:
---
--- * 'ddsrDataSourceId' @::@ 'Maybe' 'Text'
---
-deleteDataSourceResponse :: DeleteDataSourceResponse
-deleteDataSourceResponse = DeleteDataSourceResponse
-    { _ddsrDataSourceId = Nothing
-    }
+instance ToHeaders DeleteDataSource where
+        toHeaders
+          = const
+              (mconcat
+                 ["X-Amz-Target" =#
+                    ("AmazonML_20141212.DeleteDataSource" :: ByteString),
+                  "Content-Type" =#
+                    ("application/x-amz-json-1.1" :: ByteString)])
 
--- | A user-supplied ID that uniquely identifies the 'DataSource'. This value should
--- be identical to the value of the 'DataSourceID' in the request.
-ddsrDataSourceId :: Lens' DeleteDataSourceResponse (Maybe Text)
-ddsrDataSourceId = lens _ddsrDataSourceId (\s a -> s { _ddsrDataSourceId = a })
+instance ToJSON DeleteDataSource where
+        toJSON DeleteDataSource'{..}
+          = object ["DataSourceId" .= _ddsDataSourceId]
 
 instance ToPath DeleteDataSource where
-    toPath = const "/"
+        toPath = const "/"
 
 instance ToQuery DeleteDataSource where
-    toQuery = const mempty
-
-instance ToHeaders DeleteDataSource
+        toQuery = const mempty
 
-instance ToJSON DeleteDataSource where
-    toJSON DeleteDataSource{..} = object
-        [ "DataSourceId" .= _ddsDataSourceId
-        ]
+-- | Represents the output of a DeleteDataSource operation.
+--
+-- /See:/ 'deleteDataSourceResponse' smart constructor.
+data DeleteDataSourceResponse = DeleteDataSourceResponse'
+    { _ddsrsDataSourceId :: !(Maybe Text)
+    , _ddsrsStatus       :: !Int
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
 
-instance AWSRequest DeleteDataSource where
-    type Sv DeleteDataSource = MachineLearning
-    type Rs DeleteDataSource = DeleteDataSourceResponse
+-- | Creates a value of 'DeleteDataSourceResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'ddsrsDataSourceId'
+--
+-- * 'ddsrsStatus'
+deleteDataSourceResponse
+    :: Int -- ^ 'ddsrsStatus'
+    -> DeleteDataSourceResponse
+deleteDataSourceResponse pStatus_ =
+    DeleteDataSourceResponse'
+    { _ddsrsDataSourceId = Nothing
+    , _ddsrsStatus = pStatus_
+    }
 
-    request  = post "DeleteDataSource"
-    response = jsonResponse
+-- | A user-supplied ID that uniquely identifies the 'DataSource'. This value
+-- should be identical to the value of the 'DataSourceID' in the request.
+ddsrsDataSourceId :: Lens' DeleteDataSourceResponse (Maybe Text)
+ddsrsDataSourceId = lens _ddsrsDataSourceId (\ s a -> s{_ddsrsDataSourceId = a});
 
-instance FromJSON DeleteDataSourceResponse where
-    parseJSON = withObject "DeleteDataSourceResponse" $ \o -> DeleteDataSourceResponse
-        <$> o .:? "DataSourceId"
+-- | The response status code.
+ddsrsStatus :: Lens' DeleteDataSourceResponse Int
+ddsrsStatus = lens _ddsrsStatus (\ s a -> s{_ddsrsStatus = a});
diff --git a/gen/Network/AWS/MachineLearning/DeleteEvaluation.hs b/gen/Network/AWS/MachineLearning/DeleteEvaluation.hs
--- a/gen/Network/AWS/MachineLearning/DeleteEvaluation.hs
+++ b/gen/Network/AWS/MachineLearning/DeleteEvaluation.hs
@@ -1,119 +1,141 @@
-{-# 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.MachineLearning.DeleteEvaluation
--- 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.
-
--- | Assigns the 'DELETED' status to an 'Evaluation', rendering it unusable.
+-- Assigns the 'DELETED' status to an 'Evaluation', rendering it unusable.
 --
--- After invoking the 'DeleteEvaluation' operation, you can use the 'GetEvaluation'
--- operation to verify that the status of the 'Evaluation' changed to 'DELETED'.
+-- After invoking the 'DeleteEvaluation' operation, you can use the
+-- GetEvaluation operation to verify that the status of the 'Evaluation'
+-- changed to 'DELETED'.
 --
--- Caution The results of the 'DeleteEvaluation' operation are irreversible.
+-- Caution
 --
+-- The results of the 'DeleteEvaluation' operation are irreversible.
 --
--- <http://http://docs.aws.amazon.com/machine-learning/latest/APIReference/API_DeleteEvaluation.html>
+-- /See:/ <http://http://docs.aws.amazon.com/machine-learning/latest/APIReference/API_DeleteEvaluation.html AWS API Reference> for DeleteEvaluation.
 module Network.AWS.MachineLearning.DeleteEvaluation
     (
-    -- * Request
-      DeleteEvaluation
-    -- ** Request constructor
-    , deleteEvaluation
-    -- ** Request lenses
+    -- * Creating a Request
+      deleteEvaluation
+    , DeleteEvaluation
+    -- * Request Lenses
     , deEvaluationId
 
-    -- * Response
-    , DeleteEvaluationResponse
-    -- ** Response constructor
+    -- * Destructuring the Response
     , deleteEvaluationResponse
-    -- ** Response lenses
-    , derEvaluationId
+    , DeleteEvaluationResponse
+    -- * Response Lenses
+    , dersEvaluationId
+    , dersStatus
     ) where
 
-import Network.AWS.Data (Object)
-import Network.AWS.Prelude
-import Network.AWS.Request.JSON
-import Network.AWS.MachineLearning.Types
-import qualified GHC.Exts
+import           Network.AWS.MachineLearning.Types
+import           Network.AWS.MachineLearning.Types.Product
+import           Network.AWS.Prelude
+import           Network.AWS.Request
+import           Network.AWS.Response
 
-newtype DeleteEvaluation = DeleteEvaluation
+-- | /See:/ 'deleteEvaluation' smart constructor.
+newtype DeleteEvaluation = DeleteEvaluation'
     { _deEvaluationId :: Text
-    } deriving (Eq, Ord, Read, Show, Monoid, IsString)
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
 
--- | 'DeleteEvaluation' constructor.
---
--- The fields accessible through corresponding lenses are:
+-- | Creates a value of 'DeleteEvaluation' with the minimum fields required to make a request.
 --
--- * 'deEvaluationId' @::@ 'Text'
+-- Use one of the following lenses to modify other fields as desired:
 --
-deleteEvaluation :: Text -- ^ 'deEvaluationId'
-                 -> DeleteEvaluation
-deleteEvaluation p1 = DeleteEvaluation
-    { _deEvaluationId = p1
+-- * 'deEvaluationId'
+deleteEvaluation
+    :: Text -- ^ 'deEvaluationId'
+    -> DeleteEvaluation
+deleteEvaluation pEvaluationId_ =
+    DeleteEvaluation'
+    { _deEvaluationId = pEvaluationId_
     }
 
 -- | A user-supplied ID that uniquely identifies the 'Evaluation' to delete.
 deEvaluationId :: Lens' DeleteEvaluation Text
-deEvaluationId = lens _deEvaluationId (\s a -> s { _deEvaluationId = a })
+deEvaluationId = lens _deEvaluationId (\ s a -> s{_deEvaluationId = a});
 
-newtype DeleteEvaluationResponse = DeleteEvaluationResponse
-    { _derEvaluationId :: Maybe Text
-    } deriving (Eq, Ord, Read, Show, Monoid)
+instance AWSRequest DeleteEvaluation where
+        type Sv DeleteEvaluation = MachineLearning
+        type Rs DeleteEvaluation = DeleteEvaluationResponse
+        request = postJSON
+        response
+          = receiveJSON
+              (\ s h x ->
+                 DeleteEvaluationResponse' <$>
+                   (x .?> "EvaluationId") <*> (pure (fromEnum s)))
 
--- | 'DeleteEvaluationResponse' constructor.
---
--- The fields accessible through corresponding lenses are:
---
--- * 'derEvaluationId' @::@ 'Maybe' 'Text'
---
-deleteEvaluationResponse :: DeleteEvaluationResponse
-deleteEvaluationResponse = DeleteEvaluationResponse
-    { _derEvaluationId = Nothing
-    }
+instance ToHeaders DeleteEvaluation where
+        toHeaders
+          = const
+              (mconcat
+                 ["X-Amz-Target" =#
+                    ("AmazonML_20141212.DeleteEvaluation" :: ByteString),
+                  "Content-Type" =#
+                    ("application/x-amz-json-1.1" :: ByteString)])
 
--- | A user-supplied ID that uniquely identifies the 'Evaluation'. This value should
--- be identical to the value of the 'EvaluationId' in the request.
-derEvaluationId :: Lens' DeleteEvaluationResponse (Maybe Text)
-derEvaluationId = lens _derEvaluationId (\s a -> s { _derEvaluationId = a })
+instance ToJSON DeleteEvaluation where
+        toJSON DeleteEvaluation'{..}
+          = object ["EvaluationId" .= _deEvaluationId]
 
 instance ToPath DeleteEvaluation where
-    toPath = const "/"
+        toPath = const "/"
 
 instance ToQuery DeleteEvaluation where
-    toQuery = const mempty
-
-instance ToHeaders DeleteEvaluation
+        toQuery = const mempty
 
-instance ToJSON DeleteEvaluation where
-    toJSON DeleteEvaluation{..} = object
-        [ "EvaluationId" .= _deEvaluationId
-        ]
+-- | Represents the output of a DeleteEvaluation operation. The output
+-- indicates that Amazon Machine Learning (Amazon ML) received the request.
+--
+-- You can use the GetEvaluation operation and check the value of the
+-- 'Status' parameter to see whether an 'Evaluation' is marked as
+-- 'DELETED'.
+--
+-- /See:/ 'deleteEvaluationResponse' smart constructor.
+data DeleteEvaluationResponse = DeleteEvaluationResponse'
+    { _dersEvaluationId :: !(Maybe Text)
+    , _dersStatus       :: !Int
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
 
-instance AWSRequest DeleteEvaluation where
-    type Sv DeleteEvaluation = MachineLearning
-    type Rs DeleteEvaluation = DeleteEvaluationResponse
+-- | Creates a value of 'DeleteEvaluationResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'dersEvaluationId'
+--
+-- * 'dersStatus'
+deleteEvaluationResponse
+    :: Int -- ^ 'dersStatus'
+    -> DeleteEvaluationResponse
+deleteEvaluationResponse pStatus_ =
+    DeleteEvaluationResponse'
+    { _dersEvaluationId = Nothing
+    , _dersStatus = pStatus_
+    }
 
-    request  = post "DeleteEvaluation"
-    response = jsonResponse
+-- | A user-supplied ID that uniquely identifies the 'Evaluation'. This value
+-- should be identical to the value of the 'EvaluationId' in the request.
+dersEvaluationId :: Lens' DeleteEvaluationResponse (Maybe Text)
+dersEvaluationId = lens _dersEvaluationId (\ s a -> s{_dersEvaluationId = a});
 
-instance FromJSON DeleteEvaluationResponse where
-    parseJSON = withObject "DeleteEvaluationResponse" $ \o -> DeleteEvaluationResponse
-        <$> o .:? "EvaluationId"
+-- | The response status code.
+dersStatus :: Lens' DeleteEvaluationResponse Int
+dersStatus = lens _dersStatus (\ s a -> s{_dersStatus = a});
diff --git a/gen/Network/AWS/MachineLearning/DeleteMLModel.hs b/gen/Network/AWS/MachineLearning/DeleteMLModel.hs
--- a/gen/Network/AWS/MachineLearning/DeleteMLModel.hs
+++ b/gen/Network/AWS/MachineLearning/DeleteMLModel.hs
@@ -1,119 +1,138 @@
-{-# 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.MachineLearning.DeleteMLModel
--- 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.
-
--- | Assigns the DELETED status to an 'MLModel', rendering it unusable.
+-- Assigns the DELETED status to an 'MLModel', rendering it unusable.
 --
--- After using the 'DeleteMLModel' operation, you can use the 'GetMLModel'
+-- After using the 'DeleteMLModel' operation, you can use the GetMLModel
 -- operation to verify that the status of the 'MLModel' changed to DELETED.
 --
--- Caution The result of the 'DeleteMLModel' operation is irreversible.
+-- Caution
 --
+-- The result of the 'DeleteMLModel' operation is irreversible.
 --
--- <http://http://docs.aws.amazon.com/machine-learning/latest/APIReference/API_DeleteMLModel.html>
+-- /See:/ <http://http://docs.aws.amazon.com/machine-learning/latest/APIReference/API_DeleteMLModel.html AWS API Reference> for DeleteMLModel.
 module Network.AWS.MachineLearning.DeleteMLModel
     (
-    -- * Request
-      DeleteMLModel
-    -- ** Request constructor
-    , deleteMLModel
-    -- ** Request lenses
+    -- * Creating a Request
+      deleteMLModel
+    , DeleteMLModel
+    -- * Request Lenses
     , dmlmMLModelId
 
-    -- * Response
-    , DeleteMLModelResponse
-    -- ** Response constructor
+    -- * Destructuring the Response
     , deleteMLModelResponse
-    -- ** Response lenses
-    , dmlmrMLModelId
+    , DeleteMLModelResponse
+    -- * Response Lenses
+    , dmlmrsMLModelId
+    , dmlmrsStatus
     ) where
 
-import Network.AWS.Data (Object)
-import Network.AWS.Prelude
-import Network.AWS.Request.JSON
-import Network.AWS.MachineLearning.Types
-import qualified GHC.Exts
+import           Network.AWS.MachineLearning.Types
+import           Network.AWS.MachineLearning.Types.Product
+import           Network.AWS.Prelude
+import           Network.AWS.Request
+import           Network.AWS.Response
 
-newtype DeleteMLModel = DeleteMLModel
+-- | /See:/ 'deleteMLModel' smart constructor.
+newtype DeleteMLModel = DeleteMLModel'
     { _dmlmMLModelId :: Text
-    } deriving (Eq, Ord, Read, Show, Monoid, IsString)
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
 
--- | 'DeleteMLModel' constructor.
---
--- The fields accessible through corresponding lenses are:
+-- | Creates a value of 'DeleteMLModel' with the minimum fields required to make a request.
 --
--- * 'dmlmMLModelId' @::@ 'Text'
+-- Use one of the following lenses to modify other fields as desired:
 --
-deleteMLModel :: Text -- ^ 'dmlmMLModelId'
-              -> DeleteMLModel
-deleteMLModel p1 = DeleteMLModel
-    { _dmlmMLModelId = p1
+-- * 'dmlmMLModelId'
+deleteMLModel
+    :: Text -- ^ 'dmlmMLModelId'
+    -> DeleteMLModel
+deleteMLModel pMLModelId_ =
+    DeleteMLModel'
+    { _dmlmMLModelId = pMLModelId_
     }
 
 -- | A user-supplied ID that uniquely identifies the 'MLModel'.
 dmlmMLModelId :: Lens' DeleteMLModel Text
-dmlmMLModelId = lens _dmlmMLModelId (\s a -> s { _dmlmMLModelId = a })
+dmlmMLModelId = lens _dmlmMLModelId (\ s a -> s{_dmlmMLModelId = a});
 
-newtype DeleteMLModelResponse = DeleteMLModelResponse
-    { _dmlmrMLModelId :: Maybe Text
-    } deriving (Eq, Ord, Read, Show, Monoid)
+instance AWSRequest DeleteMLModel where
+        type Sv DeleteMLModel = MachineLearning
+        type Rs DeleteMLModel = DeleteMLModelResponse
+        request = postJSON
+        response
+          = receiveJSON
+              (\ s h x ->
+                 DeleteMLModelResponse' <$>
+                   (x .?> "MLModelId") <*> (pure (fromEnum s)))
 
--- | 'DeleteMLModelResponse' constructor.
---
--- The fields accessible through corresponding lenses are:
---
--- * 'dmlmrMLModelId' @::@ 'Maybe' 'Text'
---
-deleteMLModelResponse :: DeleteMLModelResponse
-deleteMLModelResponse = DeleteMLModelResponse
-    { _dmlmrMLModelId = Nothing
-    }
+instance ToHeaders DeleteMLModel where
+        toHeaders
+          = const
+              (mconcat
+                 ["X-Amz-Target" =#
+                    ("AmazonML_20141212.DeleteMLModel" :: ByteString),
+                  "Content-Type" =#
+                    ("application/x-amz-json-1.1" :: ByteString)])
 
--- | A user-supplied ID that uniquely identifies the 'MLModel'. This value should be
--- identical to the value of the 'MLModelID' in the request.
-dmlmrMLModelId :: Lens' DeleteMLModelResponse (Maybe Text)
-dmlmrMLModelId = lens _dmlmrMLModelId (\s a -> s { _dmlmrMLModelId = a })
+instance ToJSON DeleteMLModel where
+        toJSON DeleteMLModel'{..}
+          = object ["MLModelId" .= _dmlmMLModelId]
 
 instance ToPath DeleteMLModel where
-    toPath = const "/"
+        toPath = const "/"
 
 instance ToQuery DeleteMLModel where
-    toQuery = const mempty
-
-instance ToHeaders DeleteMLModel
+        toQuery = const mempty
 
-instance ToJSON DeleteMLModel where
-    toJSON DeleteMLModel{..} = object
-        [ "MLModelId" .= _dmlmMLModelId
-        ]
+-- | Represents the output of a DeleteMLModel operation.
+--
+-- You can use the GetMLModel operation and check the value of the 'Status'
+-- parameter to see whether an 'MLModel' is marked as 'DELETED'.
+--
+-- /See:/ 'deleteMLModelResponse' smart constructor.
+data DeleteMLModelResponse = DeleteMLModelResponse'
+    { _dmlmrsMLModelId :: !(Maybe Text)
+    , _dmlmrsStatus    :: !Int
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
 
-instance AWSRequest DeleteMLModel where
-    type Sv DeleteMLModel = MachineLearning
-    type Rs DeleteMLModel = DeleteMLModelResponse
+-- | Creates a value of 'DeleteMLModelResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'dmlmrsMLModelId'
+--
+-- * 'dmlmrsStatus'
+deleteMLModelResponse
+    :: Int -- ^ 'dmlmrsStatus'
+    -> DeleteMLModelResponse
+deleteMLModelResponse pStatus_ =
+    DeleteMLModelResponse'
+    { _dmlmrsMLModelId = Nothing
+    , _dmlmrsStatus = pStatus_
+    }
 
-    request  = post "DeleteMLModel"
-    response = jsonResponse
+-- | A user-supplied ID that uniquely identifies the 'MLModel'. This value
+-- should be identical to the value of the 'MLModelID' in the request.
+dmlmrsMLModelId :: Lens' DeleteMLModelResponse (Maybe Text)
+dmlmrsMLModelId = lens _dmlmrsMLModelId (\ s a -> s{_dmlmrsMLModelId = a});
 
-instance FromJSON DeleteMLModelResponse where
-    parseJSON = withObject "DeleteMLModelResponse" $ \o -> DeleteMLModelResponse
-        <$> o .:? "MLModelId"
+-- | The response status code.
+dmlmrsStatus :: Lens' DeleteMLModelResponse Int
+dmlmrsStatus = lens _dmlmrsStatus (\ s a -> s{_dmlmrsStatus = a});
diff --git a/gen/Network/AWS/MachineLearning/DeleteRealtimeEndpoint.hs b/gen/Network/AWS/MachineLearning/DeleteRealtimeEndpoint.hs
--- a/gen/Network/AWS/MachineLearning/DeleteRealtimeEndpoint.hs
+++ b/gen/Network/AWS/MachineLearning/DeleteRealtimeEndpoint.hs
@@ -1,125 +1,144 @@
-{-# 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.MachineLearning.DeleteRealtimeEndpoint
--- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>
--- License     : This Source Code Form is subject to the terms of
---               the Mozilla Public License, v. 2.0.
---               A copy of the MPL can be found in the LICENSE file or
---               you can obtain it at http://mozilla.org/MPL/2.0/.
+-- Copyright   : (c) 2013-2015 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
 -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
--- Stability   : experimental
+-- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
--- Derived from AWS service descriptions, licensed under Apache 2.0.
-
--- | Deletes a real time endpoint of an 'MLModel'.
+-- Deletes a real time endpoint of an 'MLModel'.
 --
--- <http://http://docs.aws.amazon.com/machine-learning/latest/APIReference/API_DeleteRealtimeEndpoint.html>
+-- /See:/ <http://http://docs.aws.amazon.com/machine-learning/latest/APIReference/API_DeleteRealtimeEndpoint.html AWS API Reference> for DeleteRealtimeEndpoint.
 module Network.AWS.MachineLearning.DeleteRealtimeEndpoint
     (
-    -- * Request
-      DeleteRealtimeEndpoint
-    -- ** Request constructor
-    , deleteRealtimeEndpoint
-    -- ** Request lenses
+    -- * Creating a Request
+      deleteRealtimeEndpoint
+    , DeleteRealtimeEndpoint
+    -- * Request Lenses
     , dreMLModelId
 
-    -- * Response
-    , DeleteRealtimeEndpointResponse
-    -- ** Response constructor
+    -- * Destructuring the Response
     , deleteRealtimeEndpointResponse
-    -- ** Response lenses
-    , drerMLModelId
-    , drerRealtimeEndpointInfo
+    , DeleteRealtimeEndpointResponse
+    -- * Response Lenses
+    , drersRealtimeEndpointInfo
+    , drersMLModelId
+    , drersStatus
     ) where
 
-import Network.AWS.Data (Object)
-import Network.AWS.Prelude
-import Network.AWS.Request.JSON
-import Network.AWS.MachineLearning.Types
-import qualified GHC.Exts
+import           Network.AWS.MachineLearning.Types
+import           Network.AWS.MachineLearning.Types.Product
+import           Network.AWS.Prelude
+import           Network.AWS.Request
+import           Network.AWS.Response
 
-newtype DeleteRealtimeEndpoint = DeleteRealtimeEndpoint
+-- | /See:/ 'deleteRealtimeEndpoint' smart constructor.
+newtype DeleteRealtimeEndpoint = DeleteRealtimeEndpoint'
     { _dreMLModelId :: Text
-    } deriving (Eq, Ord, Read, Show, Monoid, IsString)
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
 
--- | 'DeleteRealtimeEndpoint' constructor.
---
--- The fields accessible through corresponding lenses are:
+-- | Creates a value of 'DeleteRealtimeEndpoint' with the minimum fields required to make a request.
 --
--- * 'dreMLModelId' @::@ 'Text'
+-- Use one of the following lenses to modify other fields as desired:
 --
-deleteRealtimeEndpoint :: Text -- ^ 'dreMLModelId'
-                       -> DeleteRealtimeEndpoint
-deleteRealtimeEndpoint p1 = DeleteRealtimeEndpoint
-    { _dreMLModelId = p1
+-- * 'dreMLModelId'
+deleteRealtimeEndpoint
+    :: Text -- ^ 'dreMLModelId'
+    -> DeleteRealtimeEndpoint
+deleteRealtimeEndpoint pMLModelId_ =
+    DeleteRealtimeEndpoint'
+    { _dreMLModelId = pMLModelId_
     }
 
 -- | The ID assigned to the 'MLModel' during creation.
 dreMLModelId :: Lens' DeleteRealtimeEndpoint Text
-dreMLModelId = lens _dreMLModelId (\s a -> s { _dreMLModelId = a })
-
-data DeleteRealtimeEndpointResponse = DeleteRealtimeEndpointResponse
-    { _drerMLModelId            :: Maybe Text
-    , _drerRealtimeEndpointInfo :: Maybe RealtimeEndpointInfo
-    } deriving (Eq, Read, Show)
+dreMLModelId = lens _dreMLModelId (\ s a -> s{_dreMLModelId = a});
 
--- | 'DeleteRealtimeEndpointResponse' constructor.
---
--- The fields accessible through corresponding lenses are:
---
--- * 'drerMLModelId' @::@ 'Maybe' 'Text'
---
--- * 'drerRealtimeEndpointInfo' @::@ 'Maybe' 'RealtimeEndpointInfo'
---
-deleteRealtimeEndpointResponse :: DeleteRealtimeEndpointResponse
-deleteRealtimeEndpointResponse = DeleteRealtimeEndpointResponse
-    { _drerMLModelId            = Nothing
-    , _drerRealtimeEndpointInfo = Nothing
-    }
+instance AWSRequest DeleteRealtimeEndpoint where
+        type Sv DeleteRealtimeEndpoint = MachineLearning
+        type Rs DeleteRealtimeEndpoint =
+             DeleteRealtimeEndpointResponse
+        request = postJSON
+        response
+          = receiveJSON
+              (\ s h x ->
+                 DeleteRealtimeEndpointResponse' <$>
+                   (x .?> "RealtimeEndpointInfo") <*>
+                     (x .?> "MLModelId")
+                     <*> (pure (fromEnum s)))
 
--- | A user-supplied ID that uniquely identifies the 'MLModel'. This value should be
--- identical to the value of the 'MLModelId' in the request.
-drerMLModelId :: Lens' DeleteRealtimeEndpointResponse (Maybe Text)
-drerMLModelId = lens _drerMLModelId (\s a -> s { _drerMLModelId = a })
+instance ToHeaders DeleteRealtimeEndpoint where
+        toHeaders
+          = const
+              (mconcat
+                 ["X-Amz-Target" =#
+                    ("AmazonML_20141212.DeleteRealtimeEndpoint" ::
+                       ByteString),
+                  "Content-Type" =#
+                    ("application/x-amz-json-1.1" :: ByteString)])
 
--- | The endpoint information of the 'MLModel'
-drerRealtimeEndpointInfo :: Lens' DeleteRealtimeEndpointResponse (Maybe RealtimeEndpointInfo)
-drerRealtimeEndpointInfo =
-    lens _drerRealtimeEndpointInfo
-        (\s a -> s { _drerRealtimeEndpointInfo = a })
+instance ToJSON DeleteRealtimeEndpoint where
+        toJSON DeleteRealtimeEndpoint'{..}
+          = object ["MLModelId" .= _dreMLModelId]
 
 instance ToPath DeleteRealtimeEndpoint where
-    toPath = const "/"
+        toPath = const "/"
 
 instance ToQuery DeleteRealtimeEndpoint where
-    toQuery = const mempty
+        toQuery = const mempty
 
-instance ToHeaders DeleteRealtimeEndpoint
+-- | Represents the output of an DeleteRealtimeEndpoint operation.
+--
+-- The result contains the 'MLModelId' and the endpoint information for the
+-- 'MLModel'.
+--
+-- /See:/ 'deleteRealtimeEndpointResponse' smart constructor.
+data DeleteRealtimeEndpointResponse = DeleteRealtimeEndpointResponse'
+    { _drersRealtimeEndpointInfo :: !(Maybe RealtimeEndpointInfo)
+    , _drersMLModelId            :: !(Maybe Text)
+    , _drersStatus               :: !Int
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
 
-instance ToJSON DeleteRealtimeEndpoint where
-    toJSON DeleteRealtimeEndpoint{..} = object
-        [ "MLModelId" .= _dreMLModelId
-        ]
+-- | Creates a value of 'DeleteRealtimeEndpointResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'drersRealtimeEndpointInfo'
+--
+-- * 'drersMLModelId'
+--
+-- * 'drersStatus'
+deleteRealtimeEndpointResponse
+    :: Int -- ^ 'drersStatus'
+    -> DeleteRealtimeEndpointResponse
+deleteRealtimeEndpointResponse pStatus_ =
+    DeleteRealtimeEndpointResponse'
+    { _drersRealtimeEndpointInfo = Nothing
+    , _drersMLModelId = Nothing
+    , _drersStatus = pStatus_
+    }
 
-instance AWSRequest DeleteRealtimeEndpoint where
-    type Sv DeleteRealtimeEndpoint = MachineLearning
-    type Rs DeleteRealtimeEndpoint = DeleteRealtimeEndpointResponse
+-- | The endpoint information of the 'MLModel'
+drersRealtimeEndpointInfo :: Lens' DeleteRealtimeEndpointResponse (Maybe RealtimeEndpointInfo)
+drersRealtimeEndpointInfo = lens _drersRealtimeEndpointInfo (\ s a -> s{_drersRealtimeEndpointInfo = a});
 
-    request  = post "DeleteRealtimeEndpoint"
-    response = jsonResponse
+-- | A user-supplied ID that uniquely identifies the 'MLModel'. This value
+-- should be identical to the value of the 'MLModelId' in the request.
+drersMLModelId :: Lens' DeleteRealtimeEndpointResponse (Maybe Text)
+drersMLModelId = lens _drersMLModelId (\ s a -> s{_drersMLModelId = a});
 
-instance FromJSON DeleteRealtimeEndpointResponse where
-    parseJSON = withObject "DeleteRealtimeEndpointResponse" $ \o -> DeleteRealtimeEndpointResponse
-        <$> o .:? "MLModelId"
-        <*> o .:? "RealtimeEndpointInfo"
+-- | The response status code.
+drersStatus :: Lens' DeleteRealtimeEndpointResponse Int
+drersStatus = lens _drersStatus (\ s a -> s{_drersStatus = a});
diff --git a/gen/Network/AWS/MachineLearning/DescribeBatchPredictions.hs b/gen/Network/AWS/MachineLearning/DescribeBatchPredictions.hs
--- a/gen/Network/AWS/MachineLearning/DescribeBatchPredictions.hs
+++ b/gen/Network/AWS/MachineLearning/DescribeBatchPredictions.hs
@@ -1,252 +1,295 @@
-{-# 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.MachineLearning.DescribeBatchPredictions
--- 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 'BatchPrediction' operations that match the search criteria
--- in the request.
+-- Returns a list of 'BatchPrediction' operations that match the search
+-- criteria in the request.
 --
--- <http://http://docs.aws.amazon.com/machine-learning/latest/APIReference/API_DescribeBatchPredictions.html>
+-- /See:/ <http://http://docs.aws.amazon.com/machine-learning/latest/APIReference/API_DescribeBatchPredictions.html AWS API Reference> for DescribeBatchPredictions.
+--
+-- This operation returns paginated results.
 module Network.AWS.MachineLearning.DescribeBatchPredictions
     (
-    -- * Request
-      DescribeBatchPredictions
-    -- ** Request constructor
-    , describeBatchPredictions
-    -- ** Request lenses
+    -- * Creating a Request
+      describeBatchPredictions
+    , DescribeBatchPredictions
+    -- * Request Lenses
     , dbpEQ
-    , dbpFilterVariable
     , dbpGE
+    , dbpPrefix
     , dbpGT
-    , dbpLE
-    , dbpLT
-    , dbpLimit
     , dbpNE
     , dbpNextToken
-    , dbpPrefix
     , dbpSortOrder
+    , dbpLimit
+    , dbpLT
+    , dbpFilterVariable
+    , dbpLE
 
-    -- * Response
-    , DescribeBatchPredictionsResponse
-    -- ** Response constructor
+    -- * Destructuring the Response
     , describeBatchPredictionsResponse
-    -- ** Response lenses
-    , dbprNextToken
-    , dbprResults
+    , DescribeBatchPredictionsResponse
+    -- * Response Lenses
+    , drsResults
+    , drsNextToken
+    , drsStatus
     ) where
 
-import Network.AWS.Data (Object)
-import Network.AWS.Prelude
-import Network.AWS.Request.JSON
-import Network.AWS.MachineLearning.Types
-import qualified GHC.Exts
+import           Network.AWS.MachineLearning.Types
+import           Network.AWS.MachineLearning.Types.Product
+import           Network.AWS.Pager
+import           Network.AWS.Prelude
+import           Network.AWS.Request
+import           Network.AWS.Response
 
-data DescribeBatchPredictions = DescribeBatchPredictions
-    { _dbpEQ             :: Maybe Text
-    , _dbpFilterVariable :: Maybe BatchPredictionFilterVariable
-    , _dbpGE             :: Maybe Text
-    , _dbpGT             :: Maybe Text
-    , _dbpLE             :: Maybe Text
-    , _dbpLT             :: Maybe Text
-    , _dbpLimit          :: Maybe Nat
-    , _dbpNE             :: Maybe Text
-    , _dbpNextToken      :: Maybe Text
-    , _dbpPrefix         :: Maybe Text
-    , _dbpSortOrder      :: Maybe SortOrder
-    } deriving (Eq, Read, Show)
+-- | /See:/ 'describeBatchPredictions' smart constructor.
+data DescribeBatchPredictions = DescribeBatchPredictions'
+    { _dbpEQ             :: !(Maybe Text)
+    , _dbpGE             :: !(Maybe Text)
+    , _dbpPrefix         :: !(Maybe Text)
+    , _dbpGT             :: !(Maybe Text)
+    , _dbpNE             :: !(Maybe Text)
+    , _dbpNextToken      :: !(Maybe Text)
+    , _dbpSortOrder      :: !(Maybe SortOrder)
+    , _dbpLimit          :: !(Maybe Nat)
+    , _dbpLT             :: !(Maybe Text)
+    , _dbpFilterVariable :: !(Maybe BatchPredictionFilterVariable)
+    , _dbpLE             :: !(Maybe Text)
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
 
--- | 'DescribeBatchPredictions' constructor.
---
--- The fields accessible through corresponding lenses are:
+-- | Creates a value of 'DescribeBatchPredictions' with the minimum fields required to make a request.
 --
--- * 'dbpEQ' @::@ 'Maybe' 'Text'
+-- Use one of the following lenses to modify other fields as desired:
 --
--- * 'dbpFilterVariable' @::@ 'Maybe' 'BatchPredictionFilterVariable'
+-- * 'dbpEQ'
 --
--- * 'dbpGE' @::@ 'Maybe' 'Text'
+-- * 'dbpGE'
 --
--- * 'dbpGT' @::@ 'Maybe' 'Text'
+-- * 'dbpPrefix'
 --
--- * 'dbpLE' @::@ 'Maybe' 'Text'
+-- * 'dbpGT'
 --
--- * 'dbpLT' @::@ 'Maybe' 'Text'
+-- * 'dbpNE'
 --
--- * 'dbpLimit' @::@ 'Maybe' 'Natural'
+-- * 'dbpNextToken'
 --
--- * 'dbpNE' @::@ 'Maybe' 'Text'
+-- * 'dbpSortOrder'
 --
--- * 'dbpNextToken' @::@ 'Maybe' 'Text'
+-- * 'dbpLimit'
 --
--- * 'dbpPrefix' @::@ 'Maybe' 'Text'
+-- * 'dbpLT'
 --
--- * 'dbpSortOrder' @::@ 'Maybe' 'SortOrder'
+-- * 'dbpFilterVariable'
 --
-describeBatchPredictions :: DescribeBatchPredictions
-describeBatchPredictions = DescribeBatchPredictions
-    { _dbpFilterVariable = Nothing
-    , _dbpEQ             = Nothing
-    , _dbpGT             = Nothing
-    , _dbpLT             = Nothing
-    , _dbpGE             = Nothing
-    , _dbpLE             = Nothing
-    , _dbpNE             = Nothing
-    , _dbpPrefix         = Nothing
-    , _dbpSortOrder      = Nothing
-    , _dbpNextToken      = Nothing
-    , _dbpLimit          = Nothing
+-- * 'dbpLE'
+describeBatchPredictions
+    :: DescribeBatchPredictions
+describeBatchPredictions =
+    DescribeBatchPredictions'
+    { _dbpEQ = Nothing
+    , _dbpGE = Nothing
+    , _dbpPrefix = Nothing
+    , _dbpGT = Nothing
+    , _dbpNE = Nothing
+    , _dbpNextToken = Nothing
+    , _dbpSortOrder = Nothing
+    , _dbpLimit = Nothing
+    , _dbpLT = Nothing
+    , _dbpFilterVariable = Nothing
+    , _dbpLE = Nothing
     }
 
--- | The equal to operator. The 'BatchPrediction' results will have 'FilterVariable'
--- values that exactly match the value specified with 'EQ'.
+-- | The equal to operator. The 'BatchPrediction' results will have
+-- 'FilterVariable' values that exactly match the value specified with
+-- 'EQ'.
 dbpEQ :: Lens' DescribeBatchPredictions (Maybe Text)
-dbpEQ = lens _dbpEQ (\s a -> s { _dbpEQ = a })
-
--- | Use one of the following variables to filter a list of 'BatchPrediction':
---
--- 'CreatedAt' - Sets the search criteria to the 'BatchPrediction' creation date.
--- 'Status' - Sets the search criteria to the 'BatchPrediction' status.  'Name' -
--- Sets the search criteria to the contents of the 'BatchPrediction'  'Name'.  'IAMUser' - Sets the search criteria to the user account that invoked the 'BatchPrediction' creation.  'MLModelId' - Sets the search criteria to the 'MLModel' used in the 'BatchPrediction'.  'DataSourceId' - Sets the search criteria to the 'DataSource' used in the 'BatchPrediction'.  'DataURI' - Sets the search criteria to the data file(s) used in the 'BatchPrediction'. The URL can identify either a file or an Amazon Simple Storage Solution
--- (Amazon S3) bucket or directory.
-dbpFilterVariable :: Lens' DescribeBatchPredictions (Maybe BatchPredictionFilterVariable)
-dbpFilterVariable =
-    lens _dbpFilterVariable (\s a -> s { _dbpFilterVariable = a })
+dbpEQ = lens _dbpEQ (\ s a -> s{_dbpEQ = a});
 
--- | The greater than or equal to operator. The 'BatchPrediction' results will have 'FilterVariable' values that are greater than or equal to the value specified with 'GE'.
+-- | The greater than or equal to operator. The 'BatchPrediction' results
+-- will have 'FilterVariable' values that are greater than or equal to the
+-- value specified with 'GE'.
 dbpGE :: Lens' DescribeBatchPredictions (Maybe Text)
-dbpGE = lens _dbpGE (\s a -> s { _dbpGE = a })
-
--- | The greater than operator. The 'BatchPrediction' results will have 'FilterVariable' values that are greater than the value specified with 'GT'.
-dbpGT :: Lens' DescribeBatchPredictions (Maybe Text)
-dbpGT = lens _dbpGT (\s a -> s { _dbpGT = a })
-
--- | The less than or equal to operator. The 'BatchPrediction' results will have 'FilterVariable' values that are less than or equal to the value specified with 'LE'.
-dbpLE :: Lens' DescribeBatchPredictions (Maybe Text)
-dbpLE = lens _dbpLE (\s a -> s { _dbpLE = a })
+dbpGE = lens _dbpGE (\ s a -> s{_dbpGE = a});
 
--- | The less than operator. The 'BatchPrediction' results will have 'FilterVariable'
--- values that are less than the value specified with 'LT'.
-dbpLT :: Lens' DescribeBatchPredictions (Maybe Text)
-dbpLT = lens _dbpLT (\s a -> s { _dbpLT = a })
+-- | A string that is found at the beginning of a variable, such as 'Name' or
+-- 'Id'.
+--
+-- For example, a 'Batch Prediction' operation could have the 'Name'
+-- '2014-09-09-HolidayGiftMailer'. To search for this 'BatchPrediction',
+-- select 'Name' for the 'FilterVariable' and any of the following strings
+-- for the 'Prefix':
+--
+-- -   2014-09
+--
+-- -   2014-09-09
+--
+-- -   2014-09-09-Holiday
+--
+dbpPrefix :: Lens' DescribeBatchPredictions (Maybe Text)
+dbpPrefix = lens _dbpPrefix (\ s a -> s{_dbpPrefix = a});
 
--- | The number of pages of information to include in the result. The range of
--- acceptable values is 1 through 100. The default value is 100.
-dbpLimit :: Lens' DescribeBatchPredictions (Maybe Natural)
-dbpLimit = lens _dbpLimit (\s a -> s { _dbpLimit = a }) . mapping _Nat
+-- | The greater than operator. The 'BatchPrediction' results will have
+-- 'FilterVariable' values that are greater than the value specified with
+-- 'GT'.
+dbpGT :: Lens' DescribeBatchPredictions (Maybe Text)
+dbpGT = lens _dbpGT (\ s a -> s{_dbpGT = a});
 
--- | The not equal to operator. The 'BatchPrediction' results will have 'FilterVariable' values not equal to the value specified with 'NE'.
+-- | The not equal to operator. The 'BatchPrediction' results will have
+-- 'FilterVariable' values not equal to the value specified with 'NE'.
 dbpNE :: Lens' DescribeBatchPredictions (Maybe Text)
-dbpNE = lens _dbpNE (\s a -> s { _dbpNE = a })
+dbpNE = lens _dbpNE (\ s a -> s{_dbpNE = a});
 
 -- | An ID of the page in the paginated results.
 dbpNextToken :: Lens' DescribeBatchPredictions (Maybe Text)
-dbpNextToken = lens _dbpNextToken (\s a -> s { _dbpNextToken = a })
+dbpNextToken = lens _dbpNextToken (\ s a -> s{_dbpNextToken = a});
 
--- | A string that is found at the beginning of a variable, such as 'Name' or 'Id'.
---
--- For example, a 'Batch Prediction' operation could have the 'Name' '2014-09-09-HolidayGiftMailer'. To search for this 'BatchPrediction', select 'Name' for the 'FilterVariable' and
--- any of the following strings for the 'Prefix':
---
--- 2014-09
---
--- 2014-09-09
---
--- 2014-09-09-Holiday
---
+-- | A two-value parameter that determines the sequence of the resulting list
+-- of 'MLModel's.
 --
-dbpPrefix :: Lens' DescribeBatchPredictions (Maybe Text)
-dbpPrefix = lens _dbpPrefix (\s a -> s { _dbpPrefix = a })
-
--- | A two-value parameter that determines the sequence of the resulting list of 'MLModel's.
+-- -   'asc' - Arranges the list in ascending order (A-Z, 0-9).
+-- -   'dsc' - Arranges the list in descending order (Z-A, 9-0).
 --
--- 'asc' - Arranges the list in ascending order (A-Z, 0-9).  'dsc' - Arranges the
--- list in descending order (Z-A, 9-0).  Results are sorted by 'FilterVariable'.
+-- Results are sorted by 'FilterVariable'.
 dbpSortOrder :: Lens' DescribeBatchPredictions (Maybe SortOrder)
-dbpSortOrder = lens _dbpSortOrder (\s a -> s { _dbpSortOrder = a })
+dbpSortOrder = lens _dbpSortOrder (\ s a -> s{_dbpSortOrder = a});
 
-data DescribeBatchPredictionsResponse = DescribeBatchPredictionsResponse
-    { _dbprNextToken :: Maybe Text
-    , _dbprResults   :: List "Results" BatchPrediction
-    } deriving (Eq, Read, Show)
+-- | The number of pages of information to include in the result. The range
+-- of acceptable values is 1 through 100. The default value is 100.
+dbpLimit :: Lens' DescribeBatchPredictions (Maybe Natural)
+dbpLimit = lens _dbpLimit (\ s a -> s{_dbpLimit = a}) . mapping _Nat;
 
--- | 'DescribeBatchPredictionsResponse' constructor.
---
--- The fields accessible through corresponding lenses are:
---
--- * 'dbprNextToken' @::@ 'Maybe' 'Text'
---
--- * 'dbprResults' @::@ ['BatchPrediction']
+-- | The less than operator. The 'BatchPrediction' results will have
+-- 'FilterVariable' values that are less than the value specified with
+-- 'LT'.
+dbpLT :: Lens' DescribeBatchPredictions (Maybe Text)
+dbpLT = lens _dbpLT (\ s a -> s{_dbpLT = a});
+
+-- | Use one of the following variables to filter a list of
+-- 'BatchPrediction':
 --
-describeBatchPredictionsResponse :: DescribeBatchPredictionsResponse
-describeBatchPredictionsResponse = DescribeBatchPredictionsResponse
-    { _dbprResults   = mempty
-    , _dbprNextToken = Nothing
-    }
+-- -   'CreatedAt' - Sets the search criteria to the 'BatchPrediction'
+--     creation date.
+-- -   'Status' - Sets the search criteria to the 'BatchPrediction' status.
+-- -   'Name' - Sets the search criteria to the contents of the
+--     'BatchPrediction' ____ 'Name'.
+-- -   'IAMUser' - Sets the search criteria to the user account that
+--     invoked the 'BatchPrediction' creation.
+-- -   'MLModelId' - Sets the search criteria to the 'MLModel' used in the
+--     'BatchPrediction'.
+-- -   'DataSourceId' - Sets the search criteria to the 'DataSource' used
+--     in the 'BatchPrediction'.
+-- -   'DataURI' - Sets the search criteria to the data file(s) used in the
+--     'BatchPrediction'. The URL can identify either a file or an Amazon
+--     Simple Storage Solution (Amazon S3) bucket or directory.
+dbpFilterVariable :: Lens' DescribeBatchPredictions (Maybe BatchPredictionFilterVariable)
+dbpFilterVariable = lens _dbpFilterVariable (\ s a -> s{_dbpFilterVariable = a});
 
--- | The ID of the next page in the paginated results that indicates at least one
--- more page follows.
-dbprNextToken :: Lens' DescribeBatchPredictionsResponse (Maybe Text)
-dbprNextToken = lens _dbprNextToken (\s a -> s { _dbprNextToken = a })
+-- | The less than or equal to operator. The 'BatchPrediction' results will
+-- have 'FilterVariable' values that are less than or equal to the value
+-- specified with 'LE'.
+dbpLE :: Lens' DescribeBatchPredictions (Maybe Text)
+dbpLE = lens _dbpLE (\ s a -> s{_dbpLE = a});
 
--- | A list of 'BatchPrediction' objects that meet the search criteria.
-dbprResults :: Lens' DescribeBatchPredictionsResponse [BatchPrediction]
-dbprResults = lens _dbprResults (\s a -> s { _dbprResults = a }) . _List
+instance AWSPager DescribeBatchPredictions where
+        page rq rs
+          | stop (rs ^. drsNextToken) = Nothing
+          | stop (rs ^. drsResults) = Nothing
+          | otherwise =
+            Just $ rq & dbpNextToken .~ rs ^. drsNextToken
 
+instance AWSRequest DescribeBatchPredictions where
+        type Sv DescribeBatchPredictions = MachineLearning
+        type Rs DescribeBatchPredictions =
+             DescribeBatchPredictionsResponse
+        request = postJSON
+        response
+          = receiveJSON
+              (\ s h x ->
+                 DescribeBatchPredictionsResponse' <$>
+                   (x .?> "Results" .!@ mempty) <*> (x .?> "NextToken")
+                     <*> (pure (fromEnum s)))
+
+instance ToHeaders DescribeBatchPredictions where
+        toHeaders
+          = const
+              (mconcat
+                 ["X-Amz-Target" =#
+                    ("AmazonML_20141212.DescribeBatchPredictions" ::
+                       ByteString),
+                  "Content-Type" =#
+                    ("application/x-amz-json-1.1" :: ByteString)])
+
+instance ToJSON DescribeBatchPredictions where
+        toJSON DescribeBatchPredictions'{..}
+          = object
+              ["EQ" .= _dbpEQ, "GE" .= _dbpGE,
+               "Prefix" .= _dbpPrefix, "GT" .= _dbpGT,
+               "NE" .= _dbpNE, "NextToken" .= _dbpNextToken,
+               "SortOrder" .= _dbpSortOrder, "Limit" .= _dbpLimit,
+               "LT" .= _dbpLT,
+               "FilterVariable" .= _dbpFilterVariable,
+               "LE" .= _dbpLE]
+
 instance ToPath DescribeBatchPredictions where
-    toPath = const "/"
+        toPath = const "/"
 
 instance ToQuery DescribeBatchPredictions where
-    toQuery = const mempty
-
-instance ToHeaders DescribeBatchPredictions
+        toQuery = const mempty
 
-instance ToJSON DescribeBatchPredictions where
-    toJSON DescribeBatchPredictions{..} = object
-        [ "FilterVariable" .= _dbpFilterVariable
-        , "EQ"             .= _dbpEQ
-        , "GT"             .= _dbpGT
-        , "LT"             .= _dbpLT
-        , "GE"             .= _dbpGE
-        , "LE"             .= _dbpLE
-        , "NE"             .= _dbpNE
-        , "Prefix"         .= _dbpPrefix
-        , "SortOrder"      .= _dbpSortOrder
-        , "NextToken"      .= _dbpNextToken
-        , "Limit"          .= _dbpLimit
-        ]
+-- | Represents the output of a DescribeBatchPredictions operation. The
+-- content is essentially a list of 'BatchPrediction's.
+--
+-- /See:/ 'describeBatchPredictionsResponse' smart constructor.
+data DescribeBatchPredictionsResponse = DescribeBatchPredictionsResponse'
+    { _drsResults   :: !(Maybe [BatchPrediction])
+    , _drsNextToken :: !(Maybe Text)
+    , _drsStatus    :: !Int
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
 
-instance AWSRequest DescribeBatchPredictions where
-    type Sv DescribeBatchPredictions = MachineLearning
-    type Rs DescribeBatchPredictions = DescribeBatchPredictionsResponse
+-- | Creates a value of 'DescribeBatchPredictionsResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'drsResults'
+--
+-- * 'drsNextToken'
+--
+-- * 'drsStatus'
+describeBatchPredictionsResponse
+    :: Int -- ^ 'drsStatus'
+    -> DescribeBatchPredictionsResponse
+describeBatchPredictionsResponse pStatus_ =
+    DescribeBatchPredictionsResponse'
+    { _drsResults = Nothing
+    , _drsNextToken = Nothing
+    , _drsStatus = pStatus_
+    }
 
-    request  = post "DescribeBatchPredictions"
-    response = jsonResponse
+-- | A list of BatchPrediction objects that meet the search criteria.
+drsResults :: Lens' DescribeBatchPredictionsResponse [BatchPrediction]
+drsResults = lens _drsResults (\ s a -> s{_drsResults = a}) . _Default . _Coerce;
 
-instance FromJSON DescribeBatchPredictionsResponse where
-    parseJSON = withObject "DescribeBatchPredictionsResponse" $ \o -> DescribeBatchPredictionsResponse
-        <$> o .:? "NextToken"
-        <*> o .:? "Results" .!= mempty
+-- | The ID of the next page in the paginated results that indicates at least
+-- one more page follows.
+drsNextToken :: Lens' DescribeBatchPredictionsResponse (Maybe Text)
+drsNextToken = lens _drsNextToken (\ s a -> s{_drsNextToken = a});
 
-instance AWSPager DescribeBatchPredictions where
-    page rq rs
-        | stop (rs ^. dbprNextToken) = Nothing
-        | otherwise = (\x -> rq & dbpNextToken ?~ x)
-            <$> (rs ^. dbprNextToken)
+-- | The response status code.
+drsStatus :: Lens' DescribeBatchPredictionsResponse Int
+drsStatus = lens _drsStatus (\ s a -> s{_drsStatus = a});
diff --git a/gen/Network/AWS/MachineLearning/DescribeDataSources.hs b/gen/Network/AWS/MachineLearning/DescribeDataSources.hs
--- a/gen/Network/AWS/MachineLearning/DescribeDataSources.hs
+++ b/gen/Network/AWS/MachineLearning/DescribeDataSources.hs
@@ -1,256 +1,289 @@
-{-# 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.MachineLearning.DescribeDataSources
--- 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 'DataSource' that match the search criteria in the request.
+-- Returns a list of 'DataSource' that match the search criteria in the
+-- request.
 --
--- <http://http://docs.aws.amazon.com/machine-learning/latest/APIReference/API_DescribeDataSources.html>
+-- /See:/ <http://http://docs.aws.amazon.com/machine-learning/latest/APIReference/API_DescribeDataSources.html AWS API Reference> for DescribeDataSources.
+--
+-- This operation returns paginated results.
 module Network.AWS.MachineLearning.DescribeDataSources
     (
-    -- * Request
-      DescribeDataSources
-    -- ** Request constructor
-    , describeDataSources
-    -- ** Request lenses
+    -- * Creating a Request
+      describeDataSources
+    , DescribeDataSources
+    -- * Request Lenses
     , ddsEQ
-    , ddsFilterVariable
     , ddsGE
+    , ddsPrefix
     , ddsGT
-    , ddsLE
-    , ddsLT
-    , ddsLimit
     , ddsNE
     , ddsNextToken
-    , ddsPrefix
     , ddsSortOrder
+    , ddsLimit
+    , ddsLT
+    , ddsFilterVariable
+    , ddsLE
 
-    -- * Response
-    , DescribeDataSourcesResponse
-    -- ** Response constructor
+    -- * Destructuring the Response
     , describeDataSourcesResponse
-    -- ** Response lenses
-    , ddsrNextToken
-    , ddsrResults
+    , DescribeDataSourcesResponse
+    -- * Response Lenses
+    , ddssrsResults
+    , ddssrsNextToken
+    , ddssrsStatus
     ) where
 
-import Network.AWS.Data (Object)
-import Network.AWS.Prelude
-import Network.AWS.Request.JSON
-import Network.AWS.MachineLearning.Types
-import qualified GHC.Exts
+import           Network.AWS.MachineLearning.Types
+import           Network.AWS.MachineLearning.Types.Product
+import           Network.AWS.Pager
+import           Network.AWS.Prelude
+import           Network.AWS.Request
+import           Network.AWS.Response
 
-data DescribeDataSources = DescribeDataSources
-    { _ddsEQ             :: Maybe Text
-    , _ddsFilterVariable :: Maybe DataSourceFilterVariable
-    , _ddsGE             :: Maybe Text
-    , _ddsGT             :: Maybe Text
-    , _ddsLE             :: Maybe Text
-    , _ddsLT             :: Maybe Text
-    , _ddsLimit          :: Maybe Nat
-    , _ddsNE             :: Maybe Text
-    , _ddsNextToken      :: Maybe Text
-    , _ddsPrefix         :: Maybe Text
-    , _ddsSortOrder      :: Maybe SortOrder
-    } deriving (Eq, Read, Show)
+-- | /See:/ 'describeDataSources' smart constructor.
+data DescribeDataSources = DescribeDataSources'
+    { _ddsEQ             :: !(Maybe Text)
+    , _ddsGE             :: !(Maybe Text)
+    , _ddsPrefix         :: !(Maybe Text)
+    , _ddsGT             :: !(Maybe Text)
+    , _ddsNE             :: !(Maybe Text)
+    , _ddsNextToken      :: !(Maybe Text)
+    , _ddsSortOrder      :: !(Maybe SortOrder)
+    , _ddsLimit          :: !(Maybe Nat)
+    , _ddsLT             :: !(Maybe Text)
+    , _ddsFilterVariable :: !(Maybe DataSourceFilterVariable)
+    , _ddsLE             :: !(Maybe Text)
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
 
--- | 'DescribeDataSources' constructor.
---
--- The fields accessible through corresponding lenses are:
+-- | Creates a value of 'DescribeDataSources' with the minimum fields required to make a request.
 --
--- * 'ddsEQ' @::@ 'Maybe' 'Text'
+-- Use one of the following lenses to modify other fields as desired:
 --
--- * 'ddsFilterVariable' @::@ 'Maybe' 'DataSourceFilterVariable'
+-- * 'ddsEQ'
 --
--- * 'ddsGE' @::@ 'Maybe' 'Text'
+-- * 'ddsGE'
 --
--- * 'ddsGT' @::@ 'Maybe' 'Text'
+-- * 'ddsPrefix'
 --
--- * 'ddsLE' @::@ 'Maybe' 'Text'
+-- * 'ddsGT'
 --
--- * 'ddsLT' @::@ 'Maybe' 'Text'
+-- * 'ddsNE'
 --
--- * 'ddsLimit' @::@ 'Maybe' 'Natural'
+-- * 'ddsNextToken'
 --
--- * 'ddsNE' @::@ 'Maybe' 'Text'
+-- * 'ddsSortOrder'
 --
--- * 'ddsNextToken' @::@ 'Maybe' 'Text'
+-- * 'ddsLimit'
 --
--- * 'ddsPrefix' @::@ 'Maybe' 'Text'
+-- * 'ddsLT'
 --
--- * 'ddsSortOrder' @::@ 'Maybe' 'SortOrder'
+-- * 'ddsFilterVariable'
 --
-describeDataSources :: DescribeDataSources
-describeDataSources = DescribeDataSources
-    { _ddsFilterVariable = Nothing
-    , _ddsEQ             = Nothing
-    , _ddsGT             = Nothing
-    , _ddsLT             = Nothing
-    , _ddsGE             = Nothing
-    , _ddsLE             = Nothing
-    , _ddsNE             = Nothing
-    , _ddsPrefix         = Nothing
-    , _ddsSortOrder      = Nothing
-    , _ddsNextToken      = Nothing
-    , _ddsLimit          = Nothing
+-- * 'ddsLE'
+describeDataSources
+    :: DescribeDataSources
+describeDataSources =
+    DescribeDataSources'
+    { _ddsEQ = Nothing
+    , _ddsGE = Nothing
+    , _ddsPrefix = Nothing
+    , _ddsGT = Nothing
+    , _ddsNE = Nothing
+    , _ddsNextToken = Nothing
+    , _ddsSortOrder = Nothing
+    , _ddsLimit = Nothing
+    , _ddsLT = Nothing
+    , _ddsFilterVariable = Nothing
+    , _ddsLE = Nothing
     }
 
--- | The equal to operator. The 'DataSource' results will have 'FilterVariable' values
--- that exactly match the value specified with 'EQ'.
+-- | The equal to operator. The 'DataSource' results will have
+-- 'FilterVariable' values that exactly match the value specified with
+-- 'EQ'.
 ddsEQ :: Lens' DescribeDataSources (Maybe Text)
-ddsEQ = lens _ddsEQ (\s a -> s { _ddsEQ = a })
-
--- | Use one of the following variables to filter a list of 'DataSource':
---
--- 'CreatedAt' - Sets the search criteria to 'DataSource' creation dates.  'Status'
--- - Sets the search criteria to 'DataSource' statuses.  'Name' - Sets the search
--- criteria to the contents of 'DataSource'   'Name'.  'DataUri' - Sets the search
--- criteria to the URI of data files used to create the 'DataSource'. The URI can
--- identify either a file or an Amazon Simple Storage Service (Amazon S3) bucket
--- or directory.  'IAMUser' - Sets the search criteria to the user account that
--- invoked the 'DataSource' creation.
-ddsFilterVariable :: Lens' DescribeDataSources (Maybe DataSourceFilterVariable)
-ddsFilterVariable =
-    lens _ddsFilterVariable (\s a -> s { _ddsFilterVariable = a })
+ddsEQ = lens _ddsEQ (\ s a -> s{_ddsEQ = a});
 
--- | The greater than or equal to operator. The 'DataSource' results will have 'FilterVariable' values that are greater than or equal to the value specified with 'GE'.
+-- | The greater than or equal to operator. The 'DataSource' results will
+-- have 'FilterVariable' values that are greater than or equal to the value
+-- specified with 'GE'.
 ddsGE :: Lens' DescribeDataSources (Maybe Text)
-ddsGE = lens _ddsGE (\s a -> s { _ddsGE = a })
-
--- | The greater than operator. The 'DataSource' results will have 'FilterVariable'
--- values that are greater than the value specified with 'GT'.
-ddsGT :: Lens' DescribeDataSources (Maybe Text)
-ddsGT = lens _ddsGT (\s a -> s { _ddsGT = a })
-
--- | The less than or equal to operator. The 'DataSource' results will have 'FilterVariable' values that are less than or equal to the value specified with 'LE'.
-ddsLE :: Lens' DescribeDataSources (Maybe Text)
-ddsLE = lens _ddsLE (\s a -> s { _ddsLE = a })
+ddsGE = lens _ddsGE (\ s a -> s{_ddsGE = a});
 
--- | The less than operator. The 'DataSource' results will have 'FilterVariable'
--- values that are less than the value specified with 'LT'.
-ddsLT :: Lens' DescribeDataSources (Maybe Text)
-ddsLT = lens _ddsLT (\s a -> s { _ddsLT = a })
+-- | A string that is found at the beginning of a variable, such as 'Name' or
+-- 'Id'.
+--
+-- For example, a 'DataSource' could have the 'Name'
+-- '2014-09-09-HolidayGiftMailer'. To search for this 'DataSource', select
+-- 'Name' for the 'FilterVariable' and any of the following strings for the
+-- 'Prefix':
+--
+-- -   2014-09
+--
+-- -   2014-09-09
+--
+-- -   2014-09-09-Holiday
+--
+ddsPrefix :: Lens' DescribeDataSources (Maybe Text)
+ddsPrefix = lens _ddsPrefix (\ s a -> s{_ddsPrefix = a});
 
--- | The maximum number of 'DataSource' to include in the result.
-ddsLimit :: Lens' DescribeDataSources (Maybe Natural)
-ddsLimit = lens _ddsLimit (\s a -> s { _ddsLimit = a }) . mapping _Nat
+-- | The greater than operator. The 'DataSource' results will have
+-- 'FilterVariable' values that are greater than the value specified with
+-- 'GT'.
+ddsGT :: Lens' DescribeDataSources (Maybe Text)
+ddsGT = lens _ddsGT (\ s a -> s{_ddsGT = a});
 
--- | The not equal to operator. The 'DataSource' results will have 'FilterVariable'
--- values not equal to the value specified with 'NE'.
+-- | The not equal to operator. The 'DataSource' results will have
+-- 'FilterVariable' values not equal to the value specified with 'NE'.
 ddsNE :: Lens' DescribeDataSources (Maybe Text)
-ddsNE = lens _ddsNE (\s a -> s { _ddsNE = a })
+ddsNE = lens _ddsNE (\ s a -> s{_ddsNE = a});
 
 -- | The ID of the page in the paginated results.
 ddsNextToken :: Lens' DescribeDataSources (Maybe Text)
-ddsNextToken = lens _ddsNextToken (\s a -> s { _ddsNextToken = a })
+ddsNextToken = lens _ddsNextToken (\ s a -> s{_ddsNextToken = a});
 
--- | A string that is found at the beginning of a variable, such as 'Name' or 'Id'.
---
--- For example, a 'DataSource' could have the 'Name' '2014-09-09-HolidayGiftMailer'.
--- To search for this 'DataSource', select 'Name' for the 'FilterVariable' and any of
--- the following strings for the 'Prefix':
---
--- 2014-09
---
--- 2014-09-09
---
--- 2014-09-09-Holiday
---
+-- | A two-value parameter that determines the sequence of the resulting list
+-- of 'DataSource'.
 --
-ddsPrefix :: Lens' DescribeDataSources (Maybe Text)
-ddsPrefix = lens _ddsPrefix (\s a -> s { _ddsPrefix = a })
-
--- | A two-value parameter that determines the sequence of the resulting list of 'DataSource'.
+-- -   'asc' - Arranges the list in ascending order (A-Z, 0-9).
+-- -   'dsc' - Arranges the list in descending order (Z-A, 9-0).
 --
--- 'asc' - Arranges the list in ascending order (A-Z, 0-9).  'dsc' - Arranges the
--- list in descending order (Z-A, 9-0).  Results are sorted by 'FilterVariable'.
+-- Results are sorted by 'FilterVariable'.
 ddsSortOrder :: Lens' DescribeDataSources (Maybe SortOrder)
-ddsSortOrder = lens _ddsSortOrder (\s a -> s { _ddsSortOrder = a })
+ddsSortOrder = lens _ddsSortOrder (\ s a -> s{_ddsSortOrder = a});
 
-data DescribeDataSourcesResponse = DescribeDataSourcesResponse
-    { _ddsrNextToken :: Maybe Text
-    , _ddsrResults   :: List "Results" DataSource
-    } deriving (Eq, Read, Show)
+-- | The maximum number of 'DataSource' to include in the result.
+ddsLimit :: Lens' DescribeDataSources (Maybe Natural)
+ddsLimit = lens _ddsLimit (\ s a -> s{_ddsLimit = a}) . mapping _Nat;
 
--- | 'DescribeDataSourcesResponse' constructor.
---
--- The fields accessible through corresponding lenses are:
---
--- * 'ddsrNextToken' @::@ 'Maybe' 'Text'
---
--- * 'ddsrResults' @::@ ['DataSource']
+-- | The less than operator. The 'DataSource' results will have
+-- 'FilterVariable' values that are less than the value specified with
+-- 'LT'.
+ddsLT :: Lens' DescribeDataSources (Maybe Text)
+ddsLT = lens _ddsLT (\ s a -> s{_ddsLT = a});
+
+-- | Use one of the following variables to filter a list of 'DataSource':
 --
-describeDataSourcesResponse :: DescribeDataSourcesResponse
-describeDataSourcesResponse = DescribeDataSourcesResponse
-    { _ddsrResults   = mempty
-    , _ddsrNextToken = Nothing
-    }
+-- -   'CreatedAt' - Sets the search criteria to 'DataSource' creation
+--     dates.
+-- -   'Status' - Sets the search criteria to 'DataSource' statuses.
+-- -   'Name' - Sets the search criteria to the contents of 'DataSource'
+--     ____ 'Name'.
+-- -   'DataUri' - Sets the search criteria to the URI of data files used
+--     to create the 'DataSource'. The URI can identify either a file or an
+--     Amazon Simple Storage Service (Amazon S3) bucket or directory.
+-- -   'IAMUser' - Sets the search criteria to the user account that
+--     invoked the 'DataSource' creation.
+ddsFilterVariable :: Lens' DescribeDataSources (Maybe DataSourceFilterVariable)
+ddsFilterVariable = lens _ddsFilterVariable (\ s a -> s{_ddsFilterVariable = a});
 
--- | An ID of the next page in the paginated results that indicates at least one
--- more page follows.
-ddsrNextToken :: Lens' DescribeDataSourcesResponse (Maybe Text)
-ddsrNextToken = lens _ddsrNextToken (\s a -> s { _ddsrNextToken = a })
+-- | The less than or equal to operator. The 'DataSource' results will have
+-- 'FilterVariable' values that are less than or equal to the value
+-- specified with 'LE'.
+ddsLE :: Lens' DescribeDataSources (Maybe Text)
+ddsLE = lens _ddsLE (\ s a -> s{_ddsLE = a});
 
--- | A list of 'DataSource' that meet the search criteria.
-ddsrResults :: Lens' DescribeDataSourcesResponse [DataSource]
-ddsrResults = lens _ddsrResults (\s a -> s { _ddsrResults = a }) . _List
+instance AWSPager DescribeDataSources where
+        page rq rs
+          | stop (rs ^. ddssrsNextToken) = Nothing
+          | stop (rs ^. ddssrsResults) = Nothing
+          | otherwise =
+            Just $ rq & ddsNextToken .~ rs ^. ddssrsNextToken
 
+instance AWSRequest DescribeDataSources where
+        type Sv DescribeDataSources = MachineLearning
+        type Rs DescribeDataSources =
+             DescribeDataSourcesResponse
+        request = postJSON
+        response
+          = receiveJSON
+              (\ s h x ->
+                 DescribeDataSourcesResponse' <$>
+                   (x .?> "Results" .!@ mempty) <*> (x .?> "NextToken")
+                     <*> (pure (fromEnum s)))
+
+instance ToHeaders DescribeDataSources where
+        toHeaders
+          = const
+              (mconcat
+                 ["X-Amz-Target" =#
+                    ("AmazonML_20141212.DescribeDataSources" ::
+                       ByteString),
+                  "Content-Type" =#
+                    ("application/x-amz-json-1.1" :: ByteString)])
+
+instance ToJSON DescribeDataSources where
+        toJSON DescribeDataSources'{..}
+          = object
+              ["EQ" .= _ddsEQ, "GE" .= _ddsGE,
+               "Prefix" .= _ddsPrefix, "GT" .= _ddsGT,
+               "NE" .= _ddsNE, "NextToken" .= _ddsNextToken,
+               "SortOrder" .= _ddsSortOrder, "Limit" .= _ddsLimit,
+               "LT" .= _ddsLT,
+               "FilterVariable" .= _ddsFilterVariable,
+               "LE" .= _ddsLE]
+
 instance ToPath DescribeDataSources where
-    toPath = const "/"
+        toPath = const "/"
 
 instance ToQuery DescribeDataSources where
-    toQuery = const mempty
-
-instance ToHeaders DescribeDataSources
+        toQuery = const mempty
 
-instance ToJSON DescribeDataSources where
-    toJSON DescribeDataSources{..} = object
-        [ "FilterVariable" .= _ddsFilterVariable
-        , "EQ"             .= _ddsEQ
-        , "GT"             .= _ddsGT
-        , "LT"             .= _ddsLT
-        , "GE"             .= _ddsGE
-        , "LE"             .= _ddsLE
-        , "NE"             .= _ddsNE
-        , "Prefix"         .= _ddsPrefix
-        , "SortOrder"      .= _ddsSortOrder
-        , "NextToken"      .= _ddsNextToken
-        , "Limit"          .= _ddsLimit
-        ]
+-- | Represents the query results from a DescribeDataSources operation. The
+-- content is essentially a list of 'DataSource'.
+--
+-- /See:/ 'describeDataSourcesResponse' smart constructor.
+data DescribeDataSourcesResponse = DescribeDataSourcesResponse'
+    { _ddssrsResults   :: !(Maybe [DataSource])
+    , _ddssrsNextToken :: !(Maybe Text)
+    , _ddssrsStatus    :: !Int
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
 
-instance AWSRequest DescribeDataSources where
-    type Sv DescribeDataSources = MachineLearning
-    type Rs DescribeDataSources = DescribeDataSourcesResponse
+-- | Creates a value of 'DescribeDataSourcesResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'ddssrsResults'
+--
+-- * 'ddssrsNextToken'
+--
+-- * 'ddssrsStatus'
+describeDataSourcesResponse
+    :: Int -- ^ 'ddssrsStatus'
+    -> DescribeDataSourcesResponse
+describeDataSourcesResponse pStatus_ =
+    DescribeDataSourcesResponse'
+    { _ddssrsResults = Nothing
+    , _ddssrsNextToken = Nothing
+    , _ddssrsStatus = pStatus_
+    }
 
-    request  = post "DescribeDataSources"
-    response = jsonResponse
+-- | A list of 'DataSource' that meet the search criteria.
+ddssrsResults :: Lens' DescribeDataSourcesResponse [DataSource]
+ddssrsResults = lens _ddssrsResults (\ s a -> s{_ddssrsResults = a}) . _Default . _Coerce;
 
-instance FromJSON DescribeDataSourcesResponse where
-    parseJSON = withObject "DescribeDataSourcesResponse" $ \o -> DescribeDataSourcesResponse
-        <$> o .:? "NextToken"
-        <*> o .:? "Results" .!= mempty
+-- | An ID of the next page in the paginated results that indicates at least
+-- one more page follows.
+ddssrsNextToken :: Lens' DescribeDataSourcesResponse (Maybe Text)
+ddssrsNextToken = lens _ddssrsNextToken (\ s a -> s{_ddssrsNextToken = a});
 
-instance AWSPager DescribeDataSources where
-    page rq rs
-        | stop (rs ^. ddsrNextToken) = Nothing
-        | otherwise = (\x -> rq & ddsNextToken ?~ x)
-            <$> (rs ^. ddsrNextToken)
+-- | The response status code.
+ddssrsStatus :: Lens' DescribeDataSourcesResponse Int
+ddssrsStatus = lens _ddssrsStatus (\ s a -> s{_ddssrsStatus = a});
diff --git a/gen/Network/AWS/MachineLearning/DescribeEvaluations.hs b/gen/Network/AWS/MachineLearning/DescribeEvaluations.hs
--- a/gen/Network/AWS/MachineLearning/DescribeEvaluations.hs
+++ b/gen/Network/AWS/MachineLearning/DescribeEvaluations.hs
@@ -1,257 +1,293 @@
-{-# 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.MachineLearning.DescribeEvaluations
--- 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 'DescribeEvaluations' that match the search criteria in the
--- request.
+-- Returns a list of 'DescribeEvaluations' that match the search criteria
+-- in the request.
 --
--- <http://http://docs.aws.amazon.com/machine-learning/latest/APIReference/API_DescribeEvaluations.html>
+-- /See:/ <http://http://docs.aws.amazon.com/machine-learning/latest/APIReference/API_DescribeEvaluations.html AWS API Reference> for DescribeEvaluations.
+--
+-- This operation returns paginated results.
 module Network.AWS.MachineLearning.DescribeEvaluations
     (
-    -- * Request
-      DescribeEvaluations
-    -- ** Request constructor
-    , describeEvaluations
-    -- ** Request lenses
+    -- * Creating a Request
+      describeEvaluations
+    , DescribeEvaluations
+    -- * Request Lenses
     , deEQ
-    , deFilterVariable
     , deGE
+    , dePrefix
     , deGT
-    , deLE
-    , deLT
-    , deLimit
     , deNE
     , deNextToken
-    , dePrefix
     , deSortOrder
+    , deLimit
+    , deLT
+    , deFilterVariable
+    , deLE
 
-    -- * Response
-    , DescribeEvaluationsResponse
-    -- ** Response constructor
+    -- * Destructuring the Response
     , describeEvaluationsResponse
-    -- ** Response lenses
-    , derNextToken
-    , derResults
+    , DescribeEvaluationsResponse
+    -- * Response Lenses
+    , desrsResults
+    , desrsNextToken
+    , desrsStatus
     ) where
 
-import Network.AWS.Data (Object)
-import Network.AWS.Prelude
-import Network.AWS.Request.JSON
-import Network.AWS.MachineLearning.Types
-import qualified GHC.Exts
+import           Network.AWS.MachineLearning.Types
+import           Network.AWS.MachineLearning.Types.Product
+import           Network.AWS.Pager
+import           Network.AWS.Prelude
+import           Network.AWS.Request
+import           Network.AWS.Response
 
-data DescribeEvaluations = DescribeEvaluations
-    { _deEQ             :: Maybe Text
-    , _deFilterVariable :: Maybe EvaluationFilterVariable
-    , _deGE             :: Maybe Text
-    , _deGT             :: Maybe Text
-    , _deLE             :: Maybe Text
-    , _deLT             :: Maybe Text
-    , _deLimit          :: Maybe Nat
-    , _deNE             :: Maybe Text
-    , _deNextToken      :: Maybe Text
-    , _dePrefix         :: Maybe Text
-    , _deSortOrder      :: Maybe SortOrder
-    } deriving (Eq, Read, Show)
+-- | /See:/ 'describeEvaluations' smart constructor.
+data DescribeEvaluations = DescribeEvaluations'
+    { _deEQ             :: !(Maybe Text)
+    , _deGE             :: !(Maybe Text)
+    , _dePrefix         :: !(Maybe Text)
+    , _deGT             :: !(Maybe Text)
+    , _deNE             :: !(Maybe Text)
+    , _deNextToken      :: !(Maybe Text)
+    , _deSortOrder      :: !(Maybe SortOrder)
+    , _deLimit          :: !(Maybe Nat)
+    , _deLT             :: !(Maybe Text)
+    , _deFilterVariable :: !(Maybe EvaluationFilterVariable)
+    , _deLE             :: !(Maybe Text)
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
 
--- | 'DescribeEvaluations' constructor.
---
--- The fields accessible through corresponding lenses are:
+-- | Creates a value of 'DescribeEvaluations' with the minimum fields required to make a request.
 --
--- * 'deEQ' @::@ 'Maybe' 'Text'
+-- Use one of the following lenses to modify other fields as desired:
 --
--- * 'deFilterVariable' @::@ 'Maybe' 'EvaluationFilterVariable'
+-- * 'deEQ'
 --
--- * 'deGE' @::@ 'Maybe' 'Text'
+-- * 'deGE'
 --
--- * 'deGT' @::@ 'Maybe' 'Text'
+-- * 'dePrefix'
 --
--- * 'deLE' @::@ 'Maybe' 'Text'
+-- * 'deGT'
 --
--- * 'deLT' @::@ 'Maybe' 'Text'
+-- * 'deNE'
 --
--- * 'deLimit' @::@ 'Maybe' 'Natural'
+-- * 'deNextToken'
 --
--- * 'deNE' @::@ 'Maybe' 'Text'
+-- * 'deSortOrder'
 --
--- * 'deNextToken' @::@ 'Maybe' 'Text'
+-- * 'deLimit'
 --
--- * 'dePrefix' @::@ 'Maybe' 'Text'
+-- * 'deLT'
 --
--- * 'deSortOrder' @::@ 'Maybe' 'SortOrder'
+-- * 'deFilterVariable'
 --
-describeEvaluations :: DescribeEvaluations
-describeEvaluations = DescribeEvaluations
-    { _deFilterVariable = Nothing
-    , _deEQ             = Nothing
-    , _deGT             = Nothing
-    , _deLT             = Nothing
-    , _deGE             = Nothing
-    , _deLE             = Nothing
-    , _deNE             = Nothing
-    , _dePrefix         = Nothing
-    , _deSortOrder      = Nothing
-    , _deNextToken      = Nothing
-    , _deLimit          = Nothing
+-- * 'deLE'
+describeEvaluations
+    :: DescribeEvaluations
+describeEvaluations =
+    DescribeEvaluations'
+    { _deEQ = Nothing
+    , _deGE = Nothing
+    , _dePrefix = Nothing
+    , _deGT = Nothing
+    , _deNE = Nothing
+    , _deNextToken = Nothing
+    , _deSortOrder = Nothing
+    , _deLimit = Nothing
+    , _deLT = Nothing
+    , _deFilterVariable = Nothing
+    , _deLE = Nothing
     }
 
--- | The equal to operator. The 'Evaluation' results will have 'FilterVariable' values
--- that exactly match the value specified with 'EQ'.
+-- | The equal to operator. The 'Evaluation' results will have
+-- 'FilterVariable' values that exactly match the value specified with
+-- 'EQ'.
 deEQ :: Lens' DescribeEvaluations (Maybe Text)
-deEQ = lens _deEQ (\s a -> s { _deEQ = a })
-
--- | Use one of the following variable to filter a list of 'Evaluation' objects:
---
--- 'CreatedAt' - Sets the search criteria to the 'Evaluation' creation date.  'Status' - Sets the search criteria to the 'Evaluation' status.  'Name' - Sets the search
--- criteria to the contents of 'Evaluation'   'Name'.  'IAMUser' - Sets the search
--- criteria to the user account that invoked an 'Evaluation'.  'MLModelId' - Sets
--- the search criteria to the 'MLModel' that was evaluated.  'DataSourceId' - Sets
--- the search criteria to the 'DataSource' used in 'Evaluation'.  'DataUri' - Sets the
--- search criteria to the data file(s) used in 'Evaluation'. The URL can identify
--- either a file or an Amazon Simple Storage Solution (Amazon S3) bucket or
--- directory.
-deFilterVariable :: Lens' DescribeEvaluations (Maybe EvaluationFilterVariable)
-deFilterVariable = lens _deFilterVariable (\s a -> s { _deFilterVariable = a })
+deEQ = lens _deEQ (\ s a -> s{_deEQ = a});
 
--- | The greater than or equal to operator. The 'Evaluation' results will have 'FilterVariable' values that are greater than or equal to the value specified with 'GE'.
+-- | The greater than or equal to operator. The 'Evaluation' results will
+-- have 'FilterVariable' values that are greater than or equal to the value
+-- specified with 'GE'.
 deGE :: Lens' DescribeEvaluations (Maybe Text)
-deGE = lens _deGE (\s a -> s { _deGE = a })
-
--- | The greater than operator. The 'Evaluation' results will have 'FilterVariable'
--- values that are greater than the value specified with 'GT'.
-deGT :: Lens' DescribeEvaluations (Maybe Text)
-deGT = lens _deGT (\s a -> s { _deGT = a })
-
--- | The less than or equal to operator. The 'Evaluation' results will have 'FilterVariable' values that are less than or equal to the value specified with 'LE'.
-deLE :: Lens' DescribeEvaluations (Maybe Text)
-deLE = lens _deLE (\s a -> s { _deLE = a })
+deGE = lens _deGE (\ s a -> s{_deGE = a});
 
--- | The less than operator. The 'Evaluation' results will have 'FilterVariable'
--- values that are less than the value specified with 'LT'.
-deLT :: Lens' DescribeEvaluations (Maybe Text)
-deLT = lens _deLT (\s a -> s { _deLT = a })
+-- | A string that is found at the beginning of a variable, such as 'Name' or
+-- 'Id'.
+--
+-- For example, an 'Evaluation' could have the 'Name'
+-- '2014-09-09-HolidayGiftMailer'. To search for this 'Evaluation', select
+-- 'Name' for the 'FilterVariable' and any of the following strings for the
+-- 'Prefix':
+--
+-- -   2014-09
+--
+-- -   2014-09-09
+--
+-- -   2014-09-09-Holiday
+--
+dePrefix :: Lens' DescribeEvaluations (Maybe Text)
+dePrefix = lens _dePrefix (\ s a -> s{_dePrefix = a});
 
--- | The maximum number of 'Evaluation' to include in the result.
-deLimit :: Lens' DescribeEvaluations (Maybe Natural)
-deLimit = lens _deLimit (\s a -> s { _deLimit = a }) . mapping _Nat
+-- | The greater than operator. The 'Evaluation' results will have
+-- 'FilterVariable' values that are greater than the value specified with
+-- 'GT'.
+deGT :: Lens' DescribeEvaluations (Maybe Text)
+deGT = lens _deGT (\ s a -> s{_deGT = a});
 
--- | The not equal to operator. The 'Evaluation' results will have 'FilterVariable'
--- values not equal to the value specified with 'NE'.
+-- | The not equal to operator. The 'Evaluation' results will have
+-- 'FilterVariable' values not equal to the value specified with 'NE'.
 deNE :: Lens' DescribeEvaluations (Maybe Text)
-deNE = lens _deNE (\s a -> s { _deNE = a })
+deNE = lens _deNE (\ s a -> s{_deNE = a});
 
 -- | The ID of the page in the paginated results.
 deNextToken :: Lens' DescribeEvaluations (Maybe Text)
-deNextToken = lens _deNextToken (\s a -> s { _deNextToken = a })
+deNextToken = lens _deNextToken (\ s a -> s{_deNextToken = a});
 
--- | A string that is found at the beginning of a variable, such as 'Name' or 'Id'.
---
--- For example, an 'Evaluation' could have the 'Name' '2014-09-09-HolidayGiftMailer'.
--- To search for this 'Evaluation', select 'Name' for the 'FilterVariable' and any of
--- the following strings for the 'Prefix':
---
--- 2014-09
---
--- 2014-09-09
---
--- 2014-09-09-Holiday
---
+-- | A two-value parameter that determines the sequence of the resulting list
+-- of 'Evaluation'.
 --
-dePrefix :: Lens' DescribeEvaluations (Maybe Text)
-dePrefix = lens _dePrefix (\s a -> s { _dePrefix = a })
-
--- | A two-value parameter that determines the sequence of the resulting list of 'Evaluation'.
+-- -   'asc' - Arranges the list in ascending order (A-Z, 0-9).
+-- -   'dsc' - Arranges the list in descending order (Z-A, 9-0).
 --
--- 'asc' - Arranges the list in ascending order (A-Z, 0-9).  'dsc' - Arranges the
--- list in descending order (Z-A, 9-0).  Results are sorted by 'FilterVariable'.
+-- Results are sorted by 'FilterVariable'.
 deSortOrder :: Lens' DescribeEvaluations (Maybe SortOrder)
-deSortOrder = lens _deSortOrder (\s a -> s { _deSortOrder = a })
+deSortOrder = lens _deSortOrder (\ s a -> s{_deSortOrder = a});
 
-data DescribeEvaluationsResponse = DescribeEvaluationsResponse
-    { _derNextToken :: Maybe Text
-    , _derResults   :: List "Results" Evaluation
-    } deriving (Eq, Read, Show)
+-- | The maximum number of 'Evaluation' to include in the result.
+deLimit :: Lens' DescribeEvaluations (Maybe Natural)
+deLimit = lens _deLimit (\ s a -> s{_deLimit = a}) . mapping _Nat;
 
--- | 'DescribeEvaluationsResponse' constructor.
---
--- The fields accessible through corresponding lenses are:
---
--- * 'derNextToken' @::@ 'Maybe' 'Text'
---
--- * 'derResults' @::@ ['Evaluation']
+-- | The less than operator. The 'Evaluation' results will have
+-- 'FilterVariable' values that are less than the value specified with
+-- 'LT'.
+deLT :: Lens' DescribeEvaluations (Maybe Text)
+deLT = lens _deLT (\ s a -> s{_deLT = a});
+
+-- | Use one of the following variable to filter a list of 'Evaluation'
+-- objects:
 --
-describeEvaluationsResponse :: DescribeEvaluationsResponse
-describeEvaluationsResponse = DescribeEvaluationsResponse
-    { _derResults   = mempty
-    , _derNextToken = Nothing
-    }
+-- -   'CreatedAt' - Sets the search criteria to the 'Evaluation' creation
+--     date.
+-- -   'Status' - Sets the search criteria to the 'Evaluation' status.
+-- -   'Name' - Sets the search criteria to the contents of 'Evaluation'
+--     ____ 'Name'.
+-- -   'IAMUser' - Sets the search criteria to the user account that
+--     invoked an 'Evaluation'.
+-- -   'MLModelId' - Sets the search criteria to the 'MLModel' that was
+--     evaluated.
+-- -   'DataSourceId' - Sets the search criteria to the 'DataSource' used
+--     in 'Evaluation'.
+-- -   'DataUri' - Sets the search criteria to the data file(s) used in
+--     'Evaluation'. The URL can identify either a file or an Amazon Simple
+--     Storage Solution (Amazon S3) bucket or directory.
+deFilterVariable :: Lens' DescribeEvaluations (Maybe EvaluationFilterVariable)
+deFilterVariable = lens _deFilterVariable (\ s a -> s{_deFilterVariable = a});
 
--- | The ID of the next page in the paginated results that indicates at least one
--- more page follows.
-derNextToken :: Lens' DescribeEvaluationsResponse (Maybe Text)
-derNextToken = lens _derNextToken (\s a -> s { _derNextToken = a })
+-- | The less than or equal to operator. The 'Evaluation' results will have
+-- 'FilterVariable' values that are less than or equal to the value
+-- specified with 'LE'.
+deLE :: Lens' DescribeEvaluations (Maybe Text)
+deLE = lens _deLE (\ s a -> s{_deLE = a});
 
--- | A list of 'Evaluation' that meet the search criteria.
-derResults :: Lens' DescribeEvaluationsResponse [Evaluation]
-derResults = lens _derResults (\s a -> s { _derResults = a }) . _List
+instance AWSPager DescribeEvaluations where
+        page rq rs
+          | stop (rs ^. desrsNextToken) = Nothing
+          | stop (rs ^. desrsResults) = Nothing
+          | otherwise =
+            Just $ rq & deNextToken .~ rs ^. desrsNextToken
 
+instance AWSRequest DescribeEvaluations where
+        type Sv DescribeEvaluations = MachineLearning
+        type Rs DescribeEvaluations =
+             DescribeEvaluationsResponse
+        request = postJSON
+        response
+          = receiveJSON
+              (\ s h x ->
+                 DescribeEvaluationsResponse' <$>
+                   (x .?> "Results" .!@ mempty) <*> (x .?> "NextToken")
+                     <*> (pure (fromEnum s)))
+
+instance ToHeaders DescribeEvaluations where
+        toHeaders
+          = const
+              (mconcat
+                 ["X-Amz-Target" =#
+                    ("AmazonML_20141212.DescribeEvaluations" ::
+                       ByteString),
+                  "Content-Type" =#
+                    ("application/x-amz-json-1.1" :: ByteString)])
+
+instance ToJSON DescribeEvaluations where
+        toJSON DescribeEvaluations'{..}
+          = object
+              ["EQ" .= _deEQ, "GE" .= _deGE, "Prefix" .= _dePrefix,
+               "GT" .= _deGT, "NE" .= _deNE,
+               "NextToken" .= _deNextToken,
+               "SortOrder" .= _deSortOrder, "Limit" .= _deLimit,
+               "LT" .= _deLT, "FilterVariable" .= _deFilterVariable,
+               "LE" .= _deLE]
+
 instance ToPath DescribeEvaluations where
-    toPath = const "/"
+        toPath = const "/"
 
 instance ToQuery DescribeEvaluations where
-    toQuery = const mempty
-
-instance ToHeaders DescribeEvaluations
+        toQuery = const mempty
 
-instance ToJSON DescribeEvaluations where
-    toJSON DescribeEvaluations{..} = object
-        [ "FilterVariable" .= _deFilterVariable
-        , "EQ"             .= _deEQ
-        , "GT"             .= _deGT
-        , "LT"             .= _deLT
-        , "GE"             .= _deGE
-        , "LE"             .= _deLE
-        , "NE"             .= _deNE
-        , "Prefix"         .= _dePrefix
-        , "SortOrder"      .= _deSortOrder
-        , "NextToken"      .= _deNextToken
-        , "Limit"          .= _deLimit
-        ]
+-- | Represents the query results from a DescribeEvaluations operation. The
+-- content is essentially a list of 'Evaluation'.
+--
+-- /See:/ 'describeEvaluationsResponse' smart constructor.
+data DescribeEvaluationsResponse = DescribeEvaluationsResponse'
+    { _desrsResults   :: !(Maybe [Evaluation])
+    , _desrsNextToken :: !(Maybe Text)
+    , _desrsStatus    :: !Int
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
 
-instance AWSRequest DescribeEvaluations where
-    type Sv DescribeEvaluations = MachineLearning
-    type Rs DescribeEvaluations = DescribeEvaluationsResponse
+-- | Creates a value of 'DescribeEvaluationsResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'desrsResults'
+--
+-- * 'desrsNextToken'
+--
+-- * 'desrsStatus'
+describeEvaluationsResponse
+    :: Int -- ^ 'desrsStatus'
+    -> DescribeEvaluationsResponse
+describeEvaluationsResponse pStatus_ =
+    DescribeEvaluationsResponse'
+    { _desrsResults = Nothing
+    , _desrsNextToken = Nothing
+    , _desrsStatus = pStatus_
+    }
 
-    request  = post "DescribeEvaluations"
-    response = jsonResponse
+-- | A list of Evaluation that meet the search criteria.
+desrsResults :: Lens' DescribeEvaluationsResponse [Evaluation]
+desrsResults = lens _desrsResults (\ s a -> s{_desrsResults = a}) . _Default . _Coerce;
 
-instance FromJSON DescribeEvaluationsResponse where
-    parseJSON = withObject "DescribeEvaluationsResponse" $ \o -> DescribeEvaluationsResponse
-        <$> o .:? "NextToken"
-        <*> o .:? "Results" .!= mempty
+-- | The ID of the next page in the paginated results that indicates at least
+-- one more page follows.
+desrsNextToken :: Lens' DescribeEvaluationsResponse (Maybe Text)
+desrsNextToken = lens _desrsNextToken (\ s a -> s{_desrsNextToken = a});
 
-instance AWSPager DescribeEvaluations where
-    page rq rs
-        | stop (rs ^. derNextToken) = Nothing
-        | otherwise = (\x -> rq & deNextToken ?~ x)
-            <$> (rs ^. derNextToken)
+-- | The response status code.
+desrsStatus :: Lens' DescribeEvaluationsResponse Int
+desrsStatus = lens _desrsStatus (\ s a -> s{_desrsStatus = a});
diff --git a/gen/Network/AWS/MachineLearning/DescribeMLModels.hs b/gen/Network/AWS/MachineLearning/DescribeMLModels.hs
--- a/gen/Network/AWS/MachineLearning/DescribeMLModels.hs
+++ b/gen/Network/AWS/MachineLearning/DescribeMLModels.hs
@@ -1,258 +1,293 @@
-{-# 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.MachineLearning.DescribeMLModels
--- 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 'MLModel' that match the search criteria in the request.
+-- Returns a list of 'MLModel' that match the search criteria in the
+-- request.
 --
--- <http://http://docs.aws.amazon.com/machine-learning/latest/APIReference/API_DescribeMLModels.html>
+-- /See:/ <http://http://docs.aws.amazon.com/machine-learning/latest/APIReference/API_DescribeMLModels.html AWS API Reference> for DescribeMLModels.
+--
+-- This operation returns paginated results.
 module Network.AWS.MachineLearning.DescribeMLModels
     (
-    -- * Request
-      DescribeMLModels
-    -- ** Request constructor
-    , describeMLModels
-    -- ** Request lenses
+    -- * Creating a Request
+      describeMLModels
+    , DescribeMLModels
+    -- * Request Lenses
     , dmlmEQ
-    , dmlmFilterVariable
     , dmlmGE
+    , dmlmPrefix
     , dmlmGT
-    , dmlmLE
-    , dmlmLT
-    , dmlmLimit
     , dmlmNE
     , dmlmNextToken
-    , dmlmPrefix
     , dmlmSortOrder
+    , dmlmLimit
+    , dmlmLT
+    , dmlmFilterVariable
+    , dmlmLE
 
-    -- * Response
-    , DescribeMLModelsResponse
-    -- ** Response constructor
+    -- * Destructuring the Response
     , describeMLModelsResponse
-    -- ** Response lenses
-    , dmlmrNextToken
-    , dmlmrResults
+    , DescribeMLModelsResponse
+    -- * Response Lenses
+    , dmlmsrsResults
+    , dmlmsrsNextToken
+    , dmlmsrsStatus
     ) where
 
-import Network.AWS.Data (Object)
-import Network.AWS.Prelude
-import Network.AWS.Request.JSON
-import Network.AWS.MachineLearning.Types
-import qualified GHC.Exts
+import           Network.AWS.MachineLearning.Types
+import           Network.AWS.MachineLearning.Types.Product
+import           Network.AWS.Pager
+import           Network.AWS.Prelude
+import           Network.AWS.Request
+import           Network.AWS.Response
 
-data DescribeMLModels = DescribeMLModels
-    { _dmlmEQ             :: Maybe Text
-    , _dmlmFilterVariable :: Maybe MLModelFilterVariable
-    , _dmlmGE             :: Maybe Text
-    , _dmlmGT             :: Maybe Text
-    , _dmlmLE             :: Maybe Text
-    , _dmlmLT             :: Maybe Text
-    , _dmlmLimit          :: Maybe Nat
-    , _dmlmNE             :: Maybe Text
-    , _dmlmNextToken      :: Maybe Text
-    , _dmlmPrefix         :: Maybe Text
-    , _dmlmSortOrder      :: Maybe SortOrder
-    } deriving (Eq, Read, Show)
+-- | /See:/ 'describeMLModels' smart constructor.
+data DescribeMLModels = DescribeMLModels'
+    { _dmlmEQ             :: !(Maybe Text)
+    , _dmlmGE             :: !(Maybe Text)
+    , _dmlmPrefix         :: !(Maybe Text)
+    , _dmlmGT             :: !(Maybe Text)
+    , _dmlmNE             :: !(Maybe Text)
+    , _dmlmNextToken      :: !(Maybe Text)
+    , _dmlmSortOrder      :: !(Maybe SortOrder)
+    , _dmlmLimit          :: !(Maybe Nat)
+    , _dmlmLT             :: !(Maybe Text)
+    , _dmlmFilterVariable :: !(Maybe MLModelFilterVariable)
+    , _dmlmLE             :: !(Maybe Text)
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
 
--- | 'DescribeMLModels' constructor.
---
--- The fields accessible through corresponding lenses are:
+-- | Creates a value of 'DescribeMLModels' with the minimum fields required to make a request.
 --
--- * 'dmlmEQ' @::@ 'Maybe' 'Text'
+-- Use one of the following lenses to modify other fields as desired:
 --
--- * 'dmlmFilterVariable' @::@ 'Maybe' 'MLModelFilterVariable'
+-- * 'dmlmEQ'
 --
--- * 'dmlmGE' @::@ 'Maybe' 'Text'
+-- * 'dmlmGE'
 --
--- * 'dmlmGT' @::@ 'Maybe' 'Text'
+-- * 'dmlmPrefix'
 --
--- * 'dmlmLE' @::@ 'Maybe' 'Text'
+-- * 'dmlmGT'
 --
--- * 'dmlmLT' @::@ 'Maybe' 'Text'
+-- * 'dmlmNE'
 --
--- * 'dmlmLimit' @::@ 'Maybe' 'Natural'
+-- * 'dmlmNextToken'
 --
--- * 'dmlmNE' @::@ 'Maybe' 'Text'
+-- * 'dmlmSortOrder'
 --
--- * 'dmlmNextToken' @::@ 'Maybe' 'Text'
+-- * 'dmlmLimit'
 --
--- * 'dmlmPrefix' @::@ 'Maybe' 'Text'
+-- * 'dmlmLT'
 --
--- * 'dmlmSortOrder' @::@ 'Maybe' 'SortOrder'
+-- * 'dmlmFilterVariable'
 --
-describeMLModels :: DescribeMLModels
-describeMLModels = DescribeMLModels
-    { _dmlmFilterVariable = Nothing
-    , _dmlmEQ             = Nothing
-    , _dmlmGT             = Nothing
-    , _dmlmLT             = Nothing
-    , _dmlmGE             = Nothing
-    , _dmlmLE             = Nothing
-    , _dmlmNE             = Nothing
-    , _dmlmPrefix         = Nothing
-    , _dmlmSortOrder      = Nothing
-    , _dmlmNextToken      = Nothing
-    , _dmlmLimit          = Nothing
+-- * 'dmlmLE'
+describeMLModels
+    :: DescribeMLModels
+describeMLModels =
+    DescribeMLModels'
+    { _dmlmEQ = Nothing
+    , _dmlmGE = Nothing
+    , _dmlmPrefix = Nothing
+    , _dmlmGT = Nothing
+    , _dmlmNE = Nothing
+    , _dmlmNextToken = Nothing
+    , _dmlmSortOrder = Nothing
+    , _dmlmLimit = Nothing
+    , _dmlmLT = Nothing
+    , _dmlmFilterVariable = Nothing
+    , _dmlmLE = Nothing
     }
 
--- | The equal to operator. The 'MLModel' results will have 'FilterVariable' values
--- that exactly match the value specified with 'EQ'.
+-- | The equal to operator. The 'MLModel' results will have 'FilterVariable'
+-- values that exactly match the value specified with 'EQ'.
 dmlmEQ :: Lens' DescribeMLModels (Maybe Text)
-dmlmEQ = lens _dmlmEQ (\s a -> s { _dmlmEQ = a })
-
--- | Use one of the following variables to filter a list of 'MLModel':
---
--- 'CreatedAt' - Sets the search criteria to 'MLModel' creation date.  'Status' -
--- Sets the search criteria to 'MLModel' status.  'Name' - Sets the search criteria
--- to the contents of 'MLModel'  'Name'.  'IAMUser' - Sets the search criteria to the
--- user account that invoked the 'MLModel' creation.  'TrainingDataSourceId' - Sets
--- the search criteria to the 'DataSource' used to train one or more 'MLModel'.  'RealtimeEndpointStatus' - Sets the search criteria to the 'MLModel' real-time endpoint status.  'MLModelType' - Sets the search criteria to 'MLModel' type: binary, regression, or
--- multi-class.  'Algorithm' - Sets the search criteria to the algorithm that the 'MLModel' uses.  'TrainingDataURI' - Sets the search criteria to the data file(s) used
--- in training a 'MLModel'. The URL can identify either a file or an Amazon Simple
--- Storage Service (Amazon S3) bucket or directory.
-dmlmFilterVariable :: Lens' DescribeMLModels (Maybe MLModelFilterVariable)
-dmlmFilterVariable =
-    lens _dmlmFilterVariable (\s a -> s { _dmlmFilterVariable = a })
+dmlmEQ = lens _dmlmEQ (\ s a -> s{_dmlmEQ = a});
 
--- | The greater than or equal to operator. The 'MLModel' results will have 'FilterVariable' values that are greater than or equal to the value specified with 'GE'.
+-- | The greater than or equal to operator. The 'MLModel' results will have
+-- 'FilterVariable' values that are greater than or equal to the value
+-- specified with 'GE'.
 dmlmGE :: Lens' DescribeMLModels (Maybe Text)
-dmlmGE = lens _dmlmGE (\s a -> s { _dmlmGE = a })
-
--- | The greater than operator. The 'MLModel' results will have 'FilterVariable'
--- values that are greater than the value specified with 'GT'.
-dmlmGT :: Lens' DescribeMLModels (Maybe Text)
-dmlmGT = lens _dmlmGT (\s a -> s { _dmlmGT = a })
-
--- | The less than or equal to operator. The 'MLModel' results will have 'FilterVariable' values that are less than or equal to the value specified with 'LE'.
-dmlmLE :: Lens' DescribeMLModels (Maybe Text)
-dmlmLE = lens _dmlmLE (\s a -> s { _dmlmLE = a })
+dmlmGE = lens _dmlmGE (\ s a -> s{_dmlmGE = a});
 
--- | The less than operator. The 'MLModel' results will have 'FilterVariable' values
--- that are less than the value specified with 'LT'.
-dmlmLT :: Lens' DescribeMLModels (Maybe Text)
-dmlmLT = lens _dmlmLT (\s a -> s { _dmlmLT = a })
+-- | A string that is found at the beginning of a variable, such as 'Name' or
+-- 'Id'.
+--
+-- For example, an 'MLModel' could have the 'Name'
+-- '2014-09-09-HolidayGiftMailer'. To search for this 'MLModel', select
+-- 'Name' for the 'FilterVariable' and any of the following strings for the
+-- 'Prefix':
+--
+-- -   2014-09
+--
+-- -   2014-09-09
+--
+-- -   2014-09-09-Holiday
+--
+dmlmPrefix :: Lens' DescribeMLModels (Maybe Text)
+dmlmPrefix = lens _dmlmPrefix (\ s a -> s{_dmlmPrefix = a});
 
--- | The number of pages of information to include in the result. The range of
--- acceptable values is 1 through 100. The default value is 100.
-dmlmLimit :: Lens' DescribeMLModels (Maybe Natural)
-dmlmLimit = lens _dmlmLimit (\s a -> s { _dmlmLimit = a }) . mapping _Nat
+-- | The greater than operator. The 'MLModel' results will have
+-- 'FilterVariable' values that are greater than the value specified with
+-- 'GT'.
+dmlmGT :: Lens' DescribeMLModels (Maybe Text)
+dmlmGT = lens _dmlmGT (\ s a -> s{_dmlmGT = a});
 
--- | The not equal to operator. The 'MLModel' results will have 'FilterVariable'
--- values not equal to the value specified with 'NE'.
+-- | The not equal to operator. The 'MLModel' results will have
+-- 'FilterVariable' values not equal to the value specified with 'NE'.
 dmlmNE :: Lens' DescribeMLModels (Maybe Text)
-dmlmNE = lens _dmlmNE (\s a -> s { _dmlmNE = a })
+dmlmNE = lens _dmlmNE (\ s a -> s{_dmlmNE = a});
 
 -- | The ID of the page in the paginated results.
 dmlmNextToken :: Lens' DescribeMLModels (Maybe Text)
-dmlmNextToken = lens _dmlmNextToken (\s a -> s { _dmlmNextToken = a })
+dmlmNextToken = lens _dmlmNextToken (\ s a -> s{_dmlmNextToken = a});
 
--- | A string that is found at the beginning of a variable, such as 'Name' or 'Id'.
---
--- For example, an 'MLModel' could have the 'Name' '2014-09-09-HolidayGiftMailer'. To
--- search for this 'MLModel', select 'Name' for the 'FilterVariable' and any of the
--- following strings for the 'Prefix':
---
--- 2014-09
---
--- 2014-09-09
---
--- 2014-09-09-Holiday
---
+-- | A two-value parameter that determines the sequence of the resulting list
+-- of 'MLModel'.
 --
-dmlmPrefix :: Lens' DescribeMLModels (Maybe Text)
-dmlmPrefix = lens _dmlmPrefix (\s a -> s { _dmlmPrefix = a })
-
--- | A two-value parameter that determines the sequence of the resulting list of 'MLModel'.
+-- -   'asc' - Arranges the list in ascending order (A-Z, 0-9).
+-- -   'dsc' - Arranges the list in descending order (Z-A, 9-0).
 --
--- 'asc' - Arranges the list in ascending order (A-Z, 0-9).  'dsc' - Arranges the
--- list in descending order (Z-A, 9-0).  Results are sorted by 'FilterVariable'.
+-- Results are sorted by 'FilterVariable'.
 dmlmSortOrder :: Lens' DescribeMLModels (Maybe SortOrder)
-dmlmSortOrder = lens _dmlmSortOrder (\s a -> s { _dmlmSortOrder = a })
+dmlmSortOrder = lens _dmlmSortOrder (\ s a -> s{_dmlmSortOrder = a});
 
-data DescribeMLModelsResponse = DescribeMLModelsResponse
-    { _dmlmrNextToken :: Maybe Text
-    , _dmlmrResults   :: List "Results" MLModel
-    } deriving (Eq, Read, Show)
+-- | The number of pages of information to include in the result. The range
+-- of acceptable values is 1 through 100. The default value is 100.
+dmlmLimit :: Lens' DescribeMLModels (Maybe Natural)
+dmlmLimit = lens _dmlmLimit (\ s a -> s{_dmlmLimit = a}) . mapping _Nat;
 
--- | 'DescribeMLModelsResponse' constructor.
---
--- The fields accessible through corresponding lenses are:
---
--- * 'dmlmrNextToken' @::@ 'Maybe' 'Text'
---
--- * 'dmlmrResults' @::@ ['MLModel']
+-- | The less than operator. The 'MLModel' results will have 'FilterVariable'
+-- values that are less than the value specified with 'LT'.
+dmlmLT :: Lens' DescribeMLModels (Maybe Text)
+dmlmLT = lens _dmlmLT (\ s a -> s{_dmlmLT = a});
+
+-- | Use one of the following variables to filter a list of 'MLModel':
 --
-describeMLModelsResponse :: DescribeMLModelsResponse
-describeMLModelsResponse = DescribeMLModelsResponse
-    { _dmlmrResults   = mempty
-    , _dmlmrNextToken = Nothing
-    }
+-- -   'CreatedAt' - Sets the search criteria to 'MLModel' creation date.
+-- -   'Status' - Sets the search criteria to 'MLModel' status.
+-- -   'Name' - Sets the search criteria to the contents of 'MLModel' ____
+--     'Name'.
+-- -   'IAMUser' - Sets the search criteria to the user account that
+--     invoked the 'MLModel' creation.
+-- -   'TrainingDataSourceId' - Sets the search criteria to the
+--     'DataSource' used to train one or more 'MLModel'.
+-- -   'RealtimeEndpointStatus' - Sets the search criteria to the 'MLModel'
+--     real-time endpoint status.
+-- -   'MLModelType' - Sets the search criteria to 'MLModel' type: binary,
+--     regression, or multi-class.
+-- -   'Algorithm' - Sets the search criteria to the algorithm that the
+--     'MLModel' uses.
+-- -   'TrainingDataURI' - Sets the search criteria to the data file(s)
+--     used in training a 'MLModel'. The URL can identify either a file or
+--     an Amazon Simple Storage Service (Amazon S3) bucket or directory.
+dmlmFilterVariable :: Lens' DescribeMLModels (Maybe MLModelFilterVariable)
+dmlmFilterVariable = lens _dmlmFilterVariable (\ s a -> s{_dmlmFilterVariable = a});
 
--- | The ID of the next page in the paginated results that indicates at least one
--- more page follows.
-dmlmrNextToken :: Lens' DescribeMLModelsResponse (Maybe Text)
-dmlmrNextToken = lens _dmlmrNextToken (\s a -> s { _dmlmrNextToken = a })
+-- | The less than or equal to operator. The 'MLModel' results will have
+-- 'FilterVariable' values that are less than or equal to the value
+-- specified with 'LE'.
+dmlmLE :: Lens' DescribeMLModels (Maybe Text)
+dmlmLE = lens _dmlmLE (\ s a -> s{_dmlmLE = a});
 
--- | A list of 'MLModel' that meet the search criteria.
-dmlmrResults :: Lens' DescribeMLModelsResponse [MLModel]
-dmlmrResults = lens _dmlmrResults (\s a -> s { _dmlmrResults = a }) . _List
+instance AWSPager DescribeMLModels where
+        page rq rs
+          | stop (rs ^. dmlmsrsNextToken) = Nothing
+          | stop (rs ^. dmlmsrsResults) = Nothing
+          | otherwise =
+            Just $ rq & dmlmNextToken .~ rs ^. dmlmsrsNextToken
 
+instance AWSRequest DescribeMLModels where
+        type Sv DescribeMLModels = MachineLearning
+        type Rs DescribeMLModels = DescribeMLModelsResponse
+        request = postJSON
+        response
+          = receiveJSON
+              (\ s h x ->
+                 DescribeMLModelsResponse' <$>
+                   (x .?> "Results" .!@ mempty) <*> (x .?> "NextToken")
+                     <*> (pure (fromEnum s)))
+
+instance ToHeaders DescribeMLModels where
+        toHeaders
+          = const
+              (mconcat
+                 ["X-Amz-Target" =#
+                    ("AmazonML_20141212.DescribeMLModels" :: ByteString),
+                  "Content-Type" =#
+                    ("application/x-amz-json-1.1" :: ByteString)])
+
+instance ToJSON DescribeMLModels where
+        toJSON DescribeMLModels'{..}
+          = object
+              ["EQ" .= _dmlmEQ, "GE" .= _dmlmGE,
+               "Prefix" .= _dmlmPrefix, "GT" .= _dmlmGT,
+               "NE" .= _dmlmNE, "NextToken" .= _dmlmNextToken,
+               "SortOrder" .= _dmlmSortOrder, "Limit" .= _dmlmLimit,
+               "LT" .= _dmlmLT,
+               "FilterVariable" .= _dmlmFilterVariable,
+               "LE" .= _dmlmLE]
+
 instance ToPath DescribeMLModels where
-    toPath = const "/"
+        toPath = const "/"
 
 instance ToQuery DescribeMLModels where
-    toQuery = const mempty
-
-instance ToHeaders DescribeMLModels
+        toQuery = const mempty
 
-instance ToJSON DescribeMLModels where
-    toJSON DescribeMLModels{..} = object
-        [ "FilterVariable" .= _dmlmFilterVariable
-        , "EQ"             .= _dmlmEQ
-        , "GT"             .= _dmlmGT
-        , "LT"             .= _dmlmLT
-        , "GE"             .= _dmlmGE
-        , "LE"             .= _dmlmLE
-        , "NE"             .= _dmlmNE
-        , "Prefix"         .= _dmlmPrefix
-        , "SortOrder"      .= _dmlmSortOrder
-        , "NextToken"      .= _dmlmNextToken
-        , "Limit"          .= _dmlmLimit
-        ]
+-- | Represents the output of a DescribeMLModels operation. The content is
+-- essentially a list of 'MLModel'.
+--
+-- /See:/ 'describeMLModelsResponse' smart constructor.
+data DescribeMLModelsResponse = DescribeMLModelsResponse'
+    { _dmlmsrsResults   :: !(Maybe [MLModel])
+    , _dmlmsrsNextToken :: !(Maybe Text)
+    , _dmlmsrsStatus    :: !Int
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
 
-instance AWSRequest DescribeMLModels where
-    type Sv DescribeMLModels = MachineLearning
-    type Rs DescribeMLModels = DescribeMLModelsResponse
+-- | Creates a value of 'DescribeMLModelsResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'dmlmsrsResults'
+--
+-- * 'dmlmsrsNextToken'
+--
+-- * 'dmlmsrsStatus'
+describeMLModelsResponse
+    :: Int -- ^ 'dmlmsrsStatus'
+    -> DescribeMLModelsResponse
+describeMLModelsResponse pStatus_ =
+    DescribeMLModelsResponse'
+    { _dmlmsrsResults = Nothing
+    , _dmlmsrsNextToken = Nothing
+    , _dmlmsrsStatus = pStatus_
+    }
 
-    request  = post "DescribeMLModels"
-    response = jsonResponse
+-- | A list of MLModel that meet the search criteria.
+dmlmsrsResults :: Lens' DescribeMLModelsResponse [MLModel]
+dmlmsrsResults = lens _dmlmsrsResults (\ s a -> s{_dmlmsrsResults = a}) . _Default . _Coerce;
 
-instance FromJSON DescribeMLModelsResponse where
-    parseJSON = withObject "DescribeMLModelsResponse" $ \o -> DescribeMLModelsResponse
-        <$> o .:? "NextToken"
-        <*> o .:? "Results" .!= mempty
+-- | The ID of the next page in the paginated results that indicates at least
+-- one more page follows.
+dmlmsrsNextToken :: Lens' DescribeMLModelsResponse (Maybe Text)
+dmlmsrsNextToken = lens _dmlmsrsNextToken (\ s a -> s{_dmlmsrsNextToken = a});
 
-instance AWSPager DescribeMLModels where
-    page rq rs
-        | stop (rs ^. dmlmrNextToken) = Nothing
-        | otherwise = (\x -> rq & dmlmNextToken ?~ x)
-            <$> (rs ^. dmlmrNextToken)
+-- | The response status code.
+dmlmsrsStatus :: Lens' DescribeMLModelsResponse Int
+dmlmsrsStatus = lens _dmlmsrsStatus (\ s a -> s{_dmlmsrsStatus = a});
diff --git a/gen/Network/AWS/MachineLearning/GetBatchPrediction.hs b/gen/Network/AWS/MachineLearning/GetBatchPrediction.hs
--- a/gen/Network/AWS/MachineLearning/GetBatchPrediction.hs
+++ b/gen/Network/AWS/MachineLearning/GetBatchPrediction.hs
@@ -1,247 +1,243 @@
-{-# 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.MachineLearning.GetBatchPrediction
--- 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 'BatchPrediction' that includes detailed metadata, status, and data
--- file information for a 'Batch Prediction' request.
+-- Returns a 'BatchPrediction' that includes detailed metadata, status, and
+-- data file information for a 'Batch Prediction' request.
 --
--- <http://http://docs.aws.amazon.com/machine-learning/latest/APIReference/API_GetBatchPrediction.html>
+-- /See:/ <http://http://docs.aws.amazon.com/machine-learning/latest/APIReference/API_GetBatchPrediction.html AWS API Reference> for GetBatchPrediction.
 module Network.AWS.MachineLearning.GetBatchPrediction
     (
-    -- * Request
-      GetBatchPrediction
-    -- ** Request constructor
-    , getBatchPrediction
-    -- ** Request lenses
+    -- * Creating a Request
+      getBatchPrediction
+    , GetBatchPrediction
+    -- * Request Lenses
     , gbpBatchPredictionId
 
-    -- * Response
-    , GetBatchPredictionResponse
-    -- ** Response constructor
+    -- * Destructuring the Response
     , getBatchPredictionResponse
-    -- ** Response lenses
-    , gbprBatchPredictionDataSourceId
-    , gbprBatchPredictionId
-    , gbprCreatedAt
-    , gbprCreatedByIamUser
-    , gbprInputDataLocationS3
-    , gbprLastUpdatedAt
-    , gbprLogUri
-    , gbprMLModelId
-    , gbprMessage
-    , gbprName
-    , gbprOutputUri
-    , gbprStatus
+    , GetBatchPredictionResponse
+    -- * Response Lenses
+    , gbprsLastUpdatedAt
+    , gbprsCreatedAt
+    , gbprsInputDataLocationS3
+    , gbprsMLModelId
+    , gbprsBatchPredictionDataSourceId
+    , gbprsBatchPredictionId
+    , gbprsName
+    , gbprsCreatedByIAMUser
+    , gbprsLogURI
+    , gbprsMessage
+    , gbprsOutputURI
+    , gbprsStatus
     ) where
 
-import Network.AWS.Data (Object)
-import Network.AWS.Prelude
-import Network.AWS.Request.JSON
-import Network.AWS.MachineLearning.Types
-import qualified GHC.Exts
+import           Network.AWS.MachineLearning.Types
+import           Network.AWS.MachineLearning.Types.Product
+import           Network.AWS.Prelude
+import           Network.AWS.Request
+import           Network.AWS.Response
 
-newtype GetBatchPrediction = GetBatchPrediction
+-- | /See:/ 'getBatchPrediction' smart constructor.
+newtype GetBatchPrediction = GetBatchPrediction'
     { _gbpBatchPredictionId :: Text
-    } deriving (Eq, Ord, Read, Show, Monoid, IsString)
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
 
--- | 'GetBatchPrediction' constructor.
---
--- The fields accessible through corresponding lenses are:
+-- | Creates a value of 'GetBatchPrediction' with the minimum fields required to make a request.
 --
--- * 'gbpBatchPredictionId' @::@ 'Text'
+-- Use one of the following lenses to modify other fields as desired:
 --
-getBatchPrediction :: Text -- ^ 'gbpBatchPredictionId'
-                   -> GetBatchPrediction
-getBatchPrediction p1 = GetBatchPrediction
-    { _gbpBatchPredictionId = p1
+-- * 'gbpBatchPredictionId'
+getBatchPrediction
+    :: Text -- ^ 'gbpBatchPredictionId'
+    -> GetBatchPrediction
+getBatchPrediction pBatchPredictionId_ =
+    GetBatchPrediction'
+    { _gbpBatchPredictionId = pBatchPredictionId_
     }
 
 -- | An ID assigned to the 'BatchPrediction' at creation.
 gbpBatchPredictionId :: Lens' GetBatchPrediction Text
-gbpBatchPredictionId =
-    lens _gbpBatchPredictionId (\s a -> s { _gbpBatchPredictionId = a })
+gbpBatchPredictionId = lens _gbpBatchPredictionId (\ s a -> s{_gbpBatchPredictionId = a});
 
-data GetBatchPredictionResponse = GetBatchPredictionResponse
-    { _gbprBatchPredictionDataSourceId :: Maybe Text
-    , _gbprBatchPredictionId           :: Maybe Text
-    , _gbprCreatedAt                   :: Maybe POSIX
-    , _gbprCreatedByIamUser            :: Maybe Text
-    , _gbprInputDataLocationS3         :: Maybe Text
-    , _gbprLastUpdatedAt               :: Maybe POSIX
-    , _gbprLogUri                      :: Maybe Text
-    , _gbprMLModelId                   :: Maybe Text
-    , _gbprMessage                     :: Maybe Text
-    , _gbprName                        :: Maybe Text
-    , _gbprOutputUri                   :: Maybe Text
-    , _gbprStatus                      :: Maybe EntityStatus
-    } deriving (Eq, Read, Show)
+instance AWSRequest GetBatchPrediction where
+        type Sv GetBatchPrediction = MachineLearning
+        type Rs GetBatchPrediction =
+             GetBatchPredictionResponse
+        request = postJSON
+        response
+          = receiveJSON
+              (\ s h x ->
+                 GetBatchPredictionResponse' <$>
+                   (x .?> "LastUpdatedAt") <*> (x .?> "CreatedAt") <*>
+                     (x .?> "InputDataLocationS3")
+                     <*> (x .?> "MLModelId")
+                     <*> (x .?> "BatchPredictionDataSourceId")
+                     <*> (x .?> "BatchPredictionId")
+                     <*> (x .?> "Name")
+                     <*> (x .?> "CreatedByIamUser")
+                     <*> (x .?> "LogUri")
+                     <*> (x .?> "Message")
+                     <*> (x .?> "OutputUri")
+                     <*> (pure (fromEnum s)))
 
--- | 'GetBatchPredictionResponse' constructor.
+instance ToHeaders GetBatchPrediction where
+        toHeaders
+          = const
+              (mconcat
+                 ["X-Amz-Target" =#
+                    ("AmazonML_20141212.GetBatchPrediction" ::
+                       ByteString),
+                  "Content-Type" =#
+                    ("application/x-amz-json-1.1" :: ByteString)])
+
+instance ToJSON GetBatchPrediction where
+        toJSON GetBatchPrediction'{..}
+          = object
+              ["BatchPredictionId" .= _gbpBatchPredictionId]
+
+instance ToPath GetBatchPrediction where
+        toPath = const "/"
+
+instance ToQuery GetBatchPrediction where
+        toQuery = const mempty
+
+-- | Represents the output of a GetBatchPrediction operation and describes a
+-- 'BatchPrediction'.
 --
--- The fields accessible through corresponding lenses are:
+-- /See:/ 'getBatchPredictionResponse' smart constructor.
+data GetBatchPredictionResponse = GetBatchPredictionResponse'
+    { _gbprsLastUpdatedAt               :: !(Maybe POSIX)
+    , _gbprsCreatedAt                   :: !(Maybe POSIX)
+    , _gbprsInputDataLocationS3         :: !(Maybe Text)
+    , _gbprsMLModelId                   :: !(Maybe Text)
+    , _gbprsBatchPredictionDataSourceId :: !(Maybe Text)
+    , _gbprsBatchPredictionId           :: !(Maybe Text)
+    , _gbprsName                        :: !(Maybe Text)
+    , _gbprsCreatedByIAMUser            :: !(Maybe Text)
+    , _gbprsLogURI                      :: !(Maybe Text)
+    , _gbprsMessage                     :: !(Maybe Text)
+    , _gbprsOutputURI                   :: !(Maybe Text)
+    , _gbprsStatus                      :: !Int
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'GetBatchPredictionResponse' with the minimum fields required to make a request.
 --
--- * 'gbprBatchPredictionDataSourceId' @::@ 'Maybe' 'Text'
+-- Use one of the following lenses to modify other fields as desired:
 --
--- * 'gbprBatchPredictionId' @::@ 'Maybe' 'Text'
+-- * 'gbprsLastUpdatedAt'
 --
--- * 'gbprCreatedAt' @::@ 'Maybe' 'UTCTime'
+-- * 'gbprsCreatedAt'
 --
--- * 'gbprCreatedByIamUser' @::@ 'Maybe' 'Text'
+-- * 'gbprsInputDataLocationS3'
 --
--- * 'gbprInputDataLocationS3' @::@ 'Maybe' 'Text'
+-- * 'gbprsMLModelId'
 --
--- * 'gbprLastUpdatedAt' @::@ 'Maybe' 'UTCTime'
+-- * 'gbprsBatchPredictionDataSourceId'
 --
--- * 'gbprLogUri' @::@ 'Maybe' 'Text'
+-- * 'gbprsBatchPredictionId'
 --
--- * 'gbprMLModelId' @::@ 'Maybe' 'Text'
+-- * 'gbprsName'
 --
--- * 'gbprMessage' @::@ 'Maybe' 'Text'
+-- * 'gbprsCreatedByIAMUser'
 --
--- * 'gbprName' @::@ 'Maybe' 'Text'
+-- * 'gbprsLogURI'
 --
--- * 'gbprOutputUri' @::@ 'Maybe' 'Text'
+-- * 'gbprsMessage'
 --
--- * 'gbprStatus' @::@ 'Maybe' 'EntityStatus'
+-- * 'gbprsOutputURI'
 --
-getBatchPredictionResponse :: GetBatchPredictionResponse
-getBatchPredictionResponse = GetBatchPredictionResponse
-    { _gbprBatchPredictionId           = Nothing
-    , _gbprMLModelId                   = Nothing
-    , _gbprBatchPredictionDataSourceId = Nothing
-    , _gbprInputDataLocationS3         = Nothing
-    , _gbprCreatedByIamUser            = Nothing
-    , _gbprCreatedAt                   = Nothing
-    , _gbprLastUpdatedAt               = Nothing
-    , _gbprName                        = Nothing
-    , _gbprStatus                      = Nothing
-    , _gbprOutputUri                   = Nothing
-    , _gbprLogUri                      = Nothing
-    , _gbprMessage                     = Nothing
+-- * 'gbprsStatus'
+getBatchPredictionResponse
+    :: Int -- ^ 'gbprsStatus'
+    -> GetBatchPredictionResponse
+getBatchPredictionResponse pStatus_ =
+    GetBatchPredictionResponse'
+    { _gbprsLastUpdatedAt = Nothing
+    , _gbprsCreatedAt = Nothing
+    , _gbprsInputDataLocationS3 = Nothing
+    , _gbprsMLModelId = Nothing
+    , _gbprsBatchPredictionDataSourceId = Nothing
+    , _gbprsBatchPredictionId = Nothing
+    , _gbprsName = Nothing
+    , _gbprsCreatedByIAMUser = Nothing
+    , _gbprsLogURI = Nothing
+    , _gbprsMessage = Nothing
+    , _gbprsOutputURI = Nothing
+    , _gbprsStatus = pStatus_
     }
 
--- | The ID of the 'DataSource' that was used to create the 'BatchPrediction'.
-gbprBatchPredictionDataSourceId :: Lens' GetBatchPredictionResponse (Maybe Text)
-gbprBatchPredictionDataSourceId =
-    lens _gbprBatchPredictionDataSourceId
-        (\s a -> s { _gbprBatchPredictionDataSourceId = a })
-
--- | An ID assigned to the 'BatchPrediction' at creation. This value should be
--- identical to the value of the 'BatchPredictionID' in the request.
-gbprBatchPredictionId :: Lens' GetBatchPredictionResponse (Maybe Text)
-gbprBatchPredictionId =
-    lens _gbprBatchPredictionId (\s a -> s { _gbprBatchPredictionId = a })
-
--- | The time when the 'BatchPrediction' was created. The time is expressed in epoch
--- time.
-gbprCreatedAt :: Lens' GetBatchPredictionResponse (Maybe UTCTime)
-gbprCreatedAt = lens _gbprCreatedAt (\s a -> s { _gbprCreatedAt = a }) . mapping _Time
-
--- | The AWS user account that invoked the 'BatchPrediction'. The account type can
--- be either an AWS root account or an AWS Identity and Access Management (IAM)
--- user account.
-gbprCreatedByIamUser :: Lens' GetBatchPredictionResponse (Maybe Text)
-gbprCreatedByIamUser =
-    lens _gbprCreatedByIamUser (\s a -> s { _gbprCreatedByIamUser = a })
+-- | The time of the most recent edit to 'BatchPrediction'. The time is
+-- expressed in epoch time.
+gbprsLastUpdatedAt :: Lens' GetBatchPredictionResponse (Maybe UTCTime)
+gbprsLastUpdatedAt = lens _gbprsLastUpdatedAt (\ s a -> s{_gbprsLastUpdatedAt = a}) . mapping _Time;
 
--- | The location of the data file or directory in Amazon Simple Storage Service
--- (Amazon S3).
-gbprInputDataLocationS3 :: Lens' GetBatchPredictionResponse (Maybe Text)
-gbprInputDataLocationS3 =
-    lens _gbprInputDataLocationS3 (\s a -> s { _gbprInputDataLocationS3 = a })
+-- | The time when the 'BatchPrediction' was created. The time is expressed
+-- in epoch time.
+gbprsCreatedAt :: Lens' GetBatchPredictionResponse (Maybe UTCTime)
+gbprsCreatedAt = lens _gbprsCreatedAt (\ s a -> s{_gbprsCreatedAt = a}) . mapping _Time;
 
--- | The time of the most recent edit to 'BatchPrediction'. The time is expressed in
--- epoch time.
-gbprLastUpdatedAt :: Lens' GetBatchPredictionResponse (Maybe UTCTime)
-gbprLastUpdatedAt =
-    lens _gbprLastUpdatedAt (\s a -> s { _gbprLastUpdatedAt = a })
-        . mapping _Time
+-- | The location of the data file or directory in Amazon Simple Storage
+-- Service (Amazon S3).
+gbprsInputDataLocationS3 :: Lens' GetBatchPredictionResponse (Maybe Text)
+gbprsInputDataLocationS3 = lens _gbprsInputDataLocationS3 (\ s a -> s{_gbprsInputDataLocationS3 = a});
 
--- | A link to the file that contains logs of the 'CreateBatchPrediction' operation.
-gbprLogUri :: Lens' GetBatchPredictionResponse (Maybe Text)
-gbprLogUri = lens _gbprLogUri (\s a -> s { _gbprLogUri = a })
+-- | The ID of the 'MLModel' that generated predictions for the
+-- 'BatchPrediction' request.
+gbprsMLModelId :: Lens' GetBatchPredictionResponse (Maybe Text)
+gbprsMLModelId = lens _gbprsMLModelId (\ s a -> s{_gbprsMLModelId = a});
 
--- | The ID of the 'MLModel' that generated predictions for the 'BatchPrediction'
--- request.
-gbprMLModelId :: Lens' GetBatchPredictionResponse (Maybe Text)
-gbprMLModelId = lens _gbprMLModelId (\s a -> s { _gbprMLModelId = a })
+-- | The ID of the 'DataSource' that was used to create the
+-- 'BatchPrediction'.
+gbprsBatchPredictionDataSourceId :: Lens' GetBatchPredictionResponse (Maybe Text)
+gbprsBatchPredictionDataSourceId = lens _gbprsBatchPredictionDataSourceId (\ s a -> s{_gbprsBatchPredictionDataSourceId = a});
 
--- | A description of the most recent details about processing the batch
--- prediction request.
-gbprMessage :: Lens' GetBatchPredictionResponse (Maybe Text)
-gbprMessage = lens _gbprMessage (\s a -> s { _gbprMessage = a })
+-- | An ID assigned to the 'BatchPrediction' at creation. This value should
+-- be identical to the value of the 'BatchPredictionID' in the request.
+gbprsBatchPredictionId :: Lens' GetBatchPredictionResponse (Maybe Text)
+gbprsBatchPredictionId = lens _gbprsBatchPredictionId (\ s a -> s{_gbprsBatchPredictionId = a});
 
 -- | A user-supplied name or description of the 'BatchPrediction'.
-gbprName :: Lens' GetBatchPredictionResponse (Maybe Text)
-gbprName = lens _gbprName (\s a -> s { _gbprName = a })
-
--- | The location of an Amazon S3 bucket or directory to receive the operation
--- results.
-gbprOutputUri :: Lens' GetBatchPredictionResponse (Maybe Text)
-gbprOutputUri = lens _gbprOutputUri (\s a -> s { _gbprOutputUri = a })
-
--- | The status of the 'BatchPrediction', which can be one of the following values:
---
--- 'PENDING' - Amazon Machine Learning (Amazon ML) submitted a request to
--- generate batch predictions.  'INPROGRESS' - The batch predictions are in
--- progress.  'FAILED' - The request to perform a batch prediction did not run to
--- completion. It is not usable.  'COMPLETED' - The batch prediction process
--- completed successfully.  'DELETED' - The 'BatchPrediction' is marked as deleted.
--- It is not usable.
-gbprStatus :: Lens' GetBatchPredictionResponse (Maybe EntityStatus)
-gbprStatus = lens _gbprStatus (\s a -> s { _gbprStatus = a })
-
-instance ToPath GetBatchPrediction where
-    toPath = const "/"
-
-instance ToQuery GetBatchPrediction where
-    toQuery = const mempty
+gbprsName :: Lens' GetBatchPredictionResponse (Maybe Text)
+gbprsName = lens _gbprsName (\ s a -> s{_gbprsName = a});
 
-instance ToHeaders GetBatchPrediction
+-- | The AWS user account that invoked the 'BatchPrediction'. The account
+-- type can be either an AWS root account or an AWS Identity and Access
+-- Management (IAM) user account.
+gbprsCreatedByIAMUser :: Lens' GetBatchPredictionResponse (Maybe Text)
+gbprsCreatedByIAMUser = lens _gbprsCreatedByIAMUser (\ s a -> s{_gbprsCreatedByIAMUser = a});
 
-instance ToJSON GetBatchPrediction where
-    toJSON GetBatchPrediction{..} = object
-        [ "BatchPredictionId" .= _gbpBatchPredictionId
-        ]
+-- | A link to the file that contains logs of the CreateBatchPrediction
+-- operation.
+gbprsLogURI :: Lens' GetBatchPredictionResponse (Maybe Text)
+gbprsLogURI = lens _gbprsLogURI (\ s a -> s{_gbprsLogURI = a});
 
-instance AWSRequest GetBatchPrediction where
-    type Sv GetBatchPrediction = MachineLearning
-    type Rs GetBatchPrediction = GetBatchPredictionResponse
+-- | A description of the most recent details about processing the batch
+-- prediction request.
+gbprsMessage :: Lens' GetBatchPredictionResponse (Maybe Text)
+gbprsMessage = lens _gbprsMessage (\ s a -> s{_gbprsMessage = a});
 
-    request  = post "GetBatchPrediction"
-    response = jsonResponse
+-- | The location of an Amazon S3 bucket or directory to receive the
+-- operation results.
+gbprsOutputURI :: Lens' GetBatchPredictionResponse (Maybe Text)
+gbprsOutputURI = lens _gbprsOutputURI (\ s a -> s{_gbprsOutputURI = a});
 
-instance FromJSON GetBatchPredictionResponse where
-    parseJSON = withObject "GetBatchPredictionResponse" $ \o -> GetBatchPredictionResponse
-        <$> o .:? "BatchPredictionDataSourceId"
-        <*> o .:? "BatchPredictionId"
-        <*> o .:? "CreatedAt"
-        <*> o .:? "CreatedByIamUser"
-        <*> o .:? "InputDataLocationS3"
-        <*> o .:? "LastUpdatedAt"
-        <*> o .:? "LogUri"
-        <*> o .:? "MLModelId"
-        <*> o .:? "Message"
-        <*> o .:? "Name"
-        <*> o .:? "OutputUri"
-        <*> o .:? "Status"
+-- | The response status code.
+gbprsStatus :: Lens' GetBatchPredictionResponse Int
+gbprsStatus = lens _gbprsStatus (\ s a -> s{_gbprsStatus = a});
diff --git a/gen/Network/AWS/MachineLearning/GetDataSource.hs b/gen/Network/AWS/MachineLearning/GetDataSource.hs
--- a/gen/Network/AWS/MachineLearning/GetDataSource.hs
+++ b/gen/Network/AWS/MachineLearning/GetDataSource.hs
@@ -1,314 +1,313 @@
-{-# 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.MachineLearning.GetDataSource
--- 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 'DataSource' that includes metadata and data file information, as
--- well as the current status of the 'DataSource'.
+-- Returns a 'DataSource' that includes metadata and data file information,
+-- as well as the current status of the 'DataSource'.
 --
--- 'GetDataSource' provides results in normal or verbose format. The verbose
--- format adds the schema description and the list of files pointed to by the
--- DataSource to the normal format.
+-- 'GetDataSource' provides results in normal or verbose format. The
+-- verbose format adds the schema description and the list of files pointed
+-- to by the DataSource to the normal format.
 --
--- <http://http://docs.aws.amazon.com/machine-learning/latest/APIReference/API_GetDataSource.html>
+-- /See:/ <http://http://docs.aws.amazon.com/machine-learning/latest/APIReference/API_GetDataSource.html AWS API Reference> for GetDataSource.
 module Network.AWS.MachineLearning.GetDataSource
     (
-    -- * Request
-      GetDataSource
-    -- ** Request constructor
-    , getDataSource
-    -- ** Request lenses
-    , gdsDataSourceId
+    -- * Creating a Request
+      getDataSource
+    , GetDataSource
+    -- * Request Lenses
     , gdsVerbose
+    , gdsDataSourceId
 
-    -- * Response
-    , GetDataSourceResponse
-    -- ** Response constructor
+    -- * Destructuring the Response
     , getDataSourceResponse
-    -- ** Response lenses
-    , gdsrComputeStatistics
-    , gdsrCreatedAt
-    , gdsrCreatedByIamUser
-    , gdsrDataLocationS3
-    , gdsrDataRearrangement
-    , gdsrDataSizeInBytes
-    , gdsrDataSourceId
-    , gdsrDataSourceSchema
-    , gdsrLastUpdatedAt
-    , gdsrLogUri
-    , gdsrMessage
-    , gdsrName
-    , gdsrNumberOfFiles
-    , gdsrRDSMetadata
-    , gdsrRedshiftMetadata
-    , gdsrRoleARN
-    , gdsrStatus
+    , GetDataSourceResponse
+    -- * Response Lenses
+    , gdsrsNumberOfFiles
+    , gdsrsLastUpdatedAt
+    , gdsrsCreatedAt
+    , gdsrsRDSMetadata
+    , gdsrsDataSourceId
+    , gdsrsDataSizeInBytes
+    , gdsrsDataSourceSchema
+    , gdsrsName
+    , gdsrsCreatedByIAMUser
+    , gdsrsLogURI
+    , gdsrsDataLocationS3
+    , gdsrsComputeStatistics
+    , gdsrsMessage
+    , gdsrsRedshiftMetadata
+    , gdsrsRoleARN
+    , gdsrsDataRearrangement
+    , gdsrsStatus
     ) where
 
-import Network.AWS.Data (Object)
-import Network.AWS.Prelude
-import Network.AWS.Request.JSON
-import Network.AWS.MachineLearning.Types
-import qualified GHC.Exts
+import           Network.AWS.MachineLearning.Types
+import           Network.AWS.MachineLearning.Types.Product
+import           Network.AWS.Prelude
+import           Network.AWS.Request
+import           Network.AWS.Response
 
-data GetDataSource = GetDataSource
-    { _gdsDataSourceId :: Text
-    , _gdsVerbose      :: Maybe Bool
-    } deriving (Eq, Ord, Read, Show)
+-- | /See:/ 'getDataSource' smart constructor.
+data GetDataSource = GetDataSource'
+    { _gdsVerbose      :: !(Maybe Bool)
+    , _gdsDataSourceId :: !Text
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
 
--- | 'GetDataSource' constructor.
---
--- The fields accessible through corresponding lenses are:
+-- | Creates a value of 'GetDataSource' with the minimum fields required to make a request.
 --
--- * 'gdsDataSourceId' @::@ 'Text'
+-- Use one of the following lenses to modify other fields as desired:
 --
--- * 'gdsVerbose' @::@ 'Maybe' 'Bool'
+-- * 'gdsVerbose'
 --
-getDataSource :: Text -- ^ 'gdsDataSourceId'
-              -> GetDataSource
-getDataSource p1 = GetDataSource
-    { _gdsDataSourceId = p1
-    , _gdsVerbose      = Nothing
+-- * 'gdsDataSourceId'
+getDataSource
+    :: Text -- ^ 'gdsDataSourceId'
+    -> GetDataSource
+getDataSource pDataSourceId_ =
+    GetDataSource'
+    { _gdsVerbose = Nothing
+    , _gdsDataSourceId = pDataSourceId_
     }
 
--- | The ID assigned to the 'DataSource' at creation.
-gdsDataSourceId :: Lens' GetDataSource Text
-gdsDataSourceId = lens _gdsDataSourceId (\s a -> s { _gdsDataSourceId = a })
-
--- | Specifies whether the 'GetDataSource' operation should return 'DataSourceSchema'.
+-- | Specifies whether the 'GetDataSource' operation should return
+-- 'DataSourceSchema'.
 --
 -- If true, 'DataSourceSchema' is returned.
 --
 -- If false, 'DataSourceSchema' is not returned.
 gdsVerbose :: Lens' GetDataSource (Maybe Bool)
-gdsVerbose = lens _gdsVerbose (\s a -> s { _gdsVerbose = a })
+gdsVerbose = lens _gdsVerbose (\ s a -> s{_gdsVerbose = a});
 
-data GetDataSourceResponse = GetDataSourceResponse
-    { _gdsrComputeStatistics :: Maybe Bool
-    , _gdsrCreatedAt         :: Maybe POSIX
-    , _gdsrCreatedByIamUser  :: Maybe Text
-    , _gdsrDataLocationS3    :: Maybe Text
-    , _gdsrDataRearrangement :: Maybe Text
-    , _gdsrDataSizeInBytes   :: Maybe Integer
-    , _gdsrDataSourceId      :: Maybe Text
-    , _gdsrDataSourceSchema  :: Maybe Text
-    , _gdsrLastUpdatedAt     :: Maybe POSIX
-    , _gdsrLogUri            :: Maybe Text
-    , _gdsrMessage           :: Maybe Text
-    , _gdsrName              :: Maybe Text
-    , _gdsrNumberOfFiles     :: Maybe Integer
-    , _gdsrRDSMetadata       :: Maybe RDSMetadata
-    , _gdsrRedshiftMetadata  :: Maybe RedshiftMetadata
-    , _gdsrRoleARN           :: Maybe Text
-    , _gdsrStatus            :: Maybe EntityStatus
-    } deriving (Eq, Read, Show)
+-- | The ID assigned to the 'DataSource' at creation.
+gdsDataSourceId :: Lens' GetDataSource Text
+gdsDataSourceId = lens _gdsDataSourceId (\ s a -> s{_gdsDataSourceId = a});
 
--- | 'GetDataSourceResponse' constructor.
+instance AWSRequest GetDataSource where
+        type Sv GetDataSource = MachineLearning
+        type Rs GetDataSource = GetDataSourceResponse
+        request = postJSON
+        response
+          = receiveJSON
+              (\ s h x ->
+                 GetDataSourceResponse' <$>
+                   (x .?> "NumberOfFiles") <*> (x .?> "LastUpdatedAt")
+                     <*> (x .?> "CreatedAt")
+                     <*> (x .?> "RDSMetadata")
+                     <*> (x .?> "DataSourceId")
+                     <*> (x .?> "DataSizeInBytes")
+                     <*> (x .?> "DataSourceSchema")
+                     <*> (x .?> "Name")
+                     <*> (x .?> "CreatedByIamUser")
+                     <*> (x .?> "LogUri")
+                     <*> (x .?> "DataLocationS3")
+                     <*> (x .?> "ComputeStatistics")
+                     <*> (x .?> "Message")
+                     <*> (x .?> "RedshiftMetadata")
+                     <*> (x .?> "RoleARN")
+                     <*> (x .?> "DataRearrangement")
+                     <*> (pure (fromEnum s)))
+
+instance ToHeaders GetDataSource where
+        toHeaders
+          = const
+              (mconcat
+                 ["X-Amz-Target" =#
+                    ("AmazonML_20141212.GetDataSource" :: ByteString),
+                  "Content-Type" =#
+                    ("application/x-amz-json-1.1" :: ByteString)])
+
+instance ToJSON GetDataSource where
+        toJSON GetDataSource'{..}
+          = object
+              ["Verbose" .= _gdsVerbose,
+               "DataSourceId" .= _gdsDataSourceId]
+
+instance ToPath GetDataSource where
+        toPath = const "/"
+
+instance ToQuery GetDataSource where
+        toQuery = const mempty
+
+-- | Represents the output of a GetDataSource operation and describes a
+-- 'DataSource'.
 --
--- The fields accessible through corresponding lenses are:
+-- /See:/ 'getDataSourceResponse' smart constructor.
+data GetDataSourceResponse = GetDataSourceResponse'
+    { _gdsrsNumberOfFiles     :: !(Maybe Integer)
+    , _gdsrsLastUpdatedAt     :: !(Maybe POSIX)
+    , _gdsrsCreatedAt         :: !(Maybe POSIX)
+    , _gdsrsRDSMetadata       :: !(Maybe RDSMetadata)
+    , _gdsrsDataSourceId      :: !(Maybe Text)
+    , _gdsrsDataSizeInBytes   :: !(Maybe Integer)
+    , _gdsrsDataSourceSchema  :: !(Maybe Text)
+    , _gdsrsName              :: !(Maybe Text)
+    , _gdsrsCreatedByIAMUser  :: !(Maybe Text)
+    , _gdsrsLogURI            :: !(Maybe Text)
+    , _gdsrsDataLocationS3    :: !(Maybe Text)
+    , _gdsrsComputeStatistics :: !(Maybe Bool)
+    , _gdsrsMessage           :: !(Maybe Text)
+    , _gdsrsRedshiftMetadata  :: !(Maybe RedshiftMetadata)
+    , _gdsrsRoleARN           :: !(Maybe Text)
+    , _gdsrsDataRearrangement :: !(Maybe Text)
+    , _gdsrsStatus            :: !Int
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'GetDataSourceResponse' with the minimum fields required to make a request.
 --
--- * 'gdsrComputeStatistics' @::@ 'Maybe' 'Bool'
+-- Use one of the following lenses to modify other fields as desired:
 --
--- * 'gdsrCreatedAt' @::@ 'Maybe' 'UTCTime'
+-- * 'gdsrsNumberOfFiles'
 --
--- * 'gdsrCreatedByIamUser' @::@ 'Maybe' 'Text'
+-- * 'gdsrsLastUpdatedAt'
 --
--- * 'gdsrDataLocationS3' @::@ 'Maybe' 'Text'
+-- * 'gdsrsCreatedAt'
 --
--- * 'gdsrDataRearrangement' @::@ 'Maybe' 'Text'
+-- * 'gdsrsRDSMetadata'
 --
--- * 'gdsrDataSizeInBytes' @::@ 'Maybe' 'Integer'
+-- * 'gdsrsDataSourceId'
 --
--- * 'gdsrDataSourceId' @::@ 'Maybe' 'Text'
+-- * 'gdsrsDataSizeInBytes'
 --
--- * 'gdsrDataSourceSchema' @::@ 'Maybe' 'Text'
+-- * 'gdsrsDataSourceSchema'
 --
--- * 'gdsrLastUpdatedAt' @::@ 'Maybe' 'UTCTime'
+-- * 'gdsrsName'
 --
--- * 'gdsrLogUri' @::@ 'Maybe' 'Text'
+-- * 'gdsrsCreatedByIAMUser'
 --
--- * 'gdsrMessage' @::@ 'Maybe' 'Text'
+-- * 'gdsrsLogURI'
 --
--- * 'gdsrName' @::@ 'Maybe' 'Text'
+-- * 'gdsrsDataLocationS3'
 --
--- * 'gdsrNumberOfFiles' @::@ 'Maybe' 'Integer'
+-- * 'gdsrsComputeStatistics'
 --
--- * 'gdsrRDSMetadata' @::@ 'Maybe' 'RDSMetadata'
+-- * 'gdsrsMessage'
 --
--- * 'gdsrRedshiftMetadata' @::@ 'Maybe' 'RedshiftMetadata'
+-- * 'gdsrsRedshiftMetadata'
 --
--- * 'gdsrRoleARN' @::@ 'Maybe' 'Text'
+-- * 'gdsrsRoleARN'
 --
--- * 'gdsrStatus' @::@ 'Maybe' 'EntityStatus'
+-- * 'gdsrsDataRearrangement'
 --
-getDataSourceResponse :: GetDataSourceResponse
-getDataSourceResponse = GetDataSourceResponse
-    { _gdsrDataSourceId      = Nothing
-    , _gdsrDataLocationS3    = Nothing
-    , _gdsrDataRearrangement = Nothing
-    , _gdsrCreatedByIamUser  = Nothing
-    , _gdsrCreatedAt         = Nothing
-    , _gdsrLastUpdatedAt     = Nothing
-    , _gdsrDataSizeInBytes   = Nothing
-    , _gdsrNumberOfFiles     = Nothing
-    , _gdsrName              = Nothing
-    , _gdsrStatus            = Nothing
-    , _gdsrLogUri            = Nothing
-    , _gdsrMessage           = Nothing
-    , _gdsrRedshiftMetadata  = Nothing
-    , _gdsrRDSMetadata       = Nothing
-    , _gdsrRoleARN           = Nothing
-    , _gdsrComputeStatistics = Nothing
-    , _gdsrDataSourceSchema  = Nothing
+-- * 'gdsrsStatus'
+getDataSourceResponse
+    :: Int -- ^ 'gdsrsStatus'
+    -> GetDataSourceResponse
+getDataSourceResponse pStatus_ =
+    GetDataSourceResponse'
+    { _gdsrsNumberOfFiles = Nothing
+    , _gdsrsLastUpdatedAt = Nothing
+    , _gdsrsCreatedAt = Nothing
+    , _gdsrsRDSMetadata = Nothing
+    , _gdsrsDataSourceId = Nothing
+    , _gdsrsDataSizeInBytes = Nothing
+    , _gdsrsDataSourceSchema = Nothing
+    , _gdsrsName = Nothing
+    , _gdsrsCreatedByIAMUser = Nothing
+    , _gdsrsLogURI = Nothing
+    , _gdsrsDataLocationS3 = Nothing
+    , _gdsrsComputeStatistics = Nothing
+    , _gdsrsMessage = Nothing
+    , _gdsrsRedshiftMetadata = Nothing
+    , _gdsrsRoleARN = Nothing
+    , _gdsrsDataRearrangement = Nothing
+    , _gdsrsStatus = pStatus_
     }
 
--- | The parameter is 'true' if statistics need to be generated from the
--- observation data.
-gdsrComputeStatistics :: Lens' GetDataSourceResponse (Maybe Bool)
-gdsrComputeStatistics =
-    lens _gdsrComputeStatistics (\s a -> s { _gdsrComputeStatistics = a })
+-- | The number of data files referenced by the 'DataSource'.
+gdsrsNumberOfFiles :: Lens' GetDataSourceResponse (Maybe Integer)
+gdsrsNumberOfFiles = lens _gdsrsNumberOfFiles (\ s a -> s{_gdsrsNumberOfFiles = a});
 
--- | The time that the 'DataSource' was created. The time is expressed in epoch time.
-gdsrCreatedAt :: Lens' GetDataSourceResponse (Maybe UTCTime)
-gdsrCreatedAt = lens _gdsrCreatedAt (\s a -> s { _gdsrCreatedAt = a }) . mapping _Time
+-- | The time of the most recent edit to the 'DataSource'. The time is
+-- expressed in epoch time.
+gdsrsLastUpdatedAt :: Lens' GetDataSourceResponse (Maybe UTCTime)
+gdsrsLastUpdatedAt = lens _gdsrsLastUpdatedAt (\ s a -> s{_gdsrsLastUpdatedAt = a}) . mapping _Time;
 
--- | The AWS user account from which the 'DataSource' was created. The account type
--- can be either an AWS root account or an AWS Identity and Access Management
--- (IAM) user account.
-gdsrCreatedByIamUser :: Lens' GetDataSourceResponse (Maybe Text)
-gdsrCreatedByIamUser =
-    lens _gdsrCreatedByIamUser (\s a -> s { _gdsrCreatedByIamUser = a })
+-- | The time that the 'DataSource' was created. The time is expressed in
+-- epoch time.
+gdsrsCreatedAt :: Lens' GetDataSourceResponse (Maybe UTCTime)
+gdsrsCreatedAt = lens _gdsrsCreatedAt (\ s a -> s{_gdsrsCreatedAt = a}) . mapping _Time;
 
--- | The location of the data file or directory in Amazon Simple Storage Service
--- (Amazon S3).
-gdsrDataLocationS3 :: Lens' GetDataSourceResponse (Maybe Text)
-gdsrDataLocationS3 =
-    lens _gdsrDataLocationS3 (\s a -> s { _gdsrDataLocationS3 = a })
+-- | Undocumented member.
+gdsrsRDSMetadata :: Lens' GetDataSourceResponse (Maybe RDSMetadata)
+gdsrsRDSMetadata = lens _gdsrsRDSMetadata (\ s a -> s{_gdsrsRDSMetadata = a});
 
--- | A JSON string that captures the splitting rearrangement requirement of the 'DataSource'.
-gdsrDataRearrangement :: Lens' GetDataSourceResponse (Maybe Text)
-gdsrDataRearrangement =
-    lens _gdsrDataRearrangement (\s a -> s { _gdsrDataRearrangement = a })
+-- | The ID assigned to the 'DataSource' at creation. This value should be
+-- identical to the value of the 'DataSourceId' in the request.
+gdsrsDataSourceId :: Lens' GetDataSourceResponse (Maybe Text)
+gdsrsDataSourceId = lens _gdsrsDataSourceId (\ s a -> s{_gdsrsDataSourceId = a});
 
 -- | The total size of observations in the data files.
-gdsrDataSizeInBytes :: Lens' GetDataSourceResponse (Maybe Integer)
-gdsrDataSizeInBytes =
-    lens _gdsrDataSizeInBytes (\s a -> s { _gdsrDataSizeInBytes = a })
-
--- | The ID assigned to the 'DataSource' at creation. This value should be identical
--- to the value of the 'DataSourceId' in the request.
-gdsrDataSourceId :: Lens' GetDataSourceResponse (Maybe Text)
-gdsrDataSourceId = lens _gdsrDataSourceId (\s a -> s { _gdsrDataSourceId = a })
+gdsrsDataSizeInBytes :: Lens' GetDataSourceResponse (Maybe Integer)
+gdsrsDataSizeInBytes = lens _gdsrsDataSizeInBytes (\ s a -> s{_gdsrsDataSizeInBytes = a});
 
 -- | The schema used by all of the data files of this 'DataSource'.
 --
--- Note This parameter is provided as part of the verbose format.
+-- Note
 --
-gdsrDataSourceSchema :: Lens' GetDataSourceResponse (Maybe Text)
-gdsrDataSourceSchema =
-    lens _gdsrDataSourceSchema (\s a -> s { _gdsrDataSourceSchema = a })
-
--- | The time of the most recent edit to the 'DataSource'. The time is expressed in
--- epoch time.
-gdsrLastUpdatedAt :: Lens' GetDataSourceResponse (Maybe UTCTime)
-gdsrLastUpdatedAt =
-    lens _gdsrLastUpdatedAt (\s a -> s { _gdsrLastUpdatedAt = a })
-        . mapping _Time
-
--- | A link to the file containining logs of either create 'DataSource' operation.
-gdsrLogUri :: Lens' GetDataSourceResponse (Maybe Text)
-gdsrLogUri = lens _gdsrLogUri (\s a -> s { _gdsrLogUri = a })
-
--- | The description of the most recent details about creating the 'DataSource'.
-gdsrMessage :: Lens' GetDataSourceResponse (Maybe Text)
-gdsrMessage = lens _gdsrMessage (\s a -> s { _gdsrMessage = a })
+-- This parameter is provided as part of the verbose format.
+gdsrsDataSourceSchema :: Lens' GetDataSourceResponse (Maybe Text)
+gdsrsDataSourceSchema = lens _gdsrsDataSourceSchema (\ s a -> s{_gdsrsDataSourceSchema = a});
 
 -- | A user-supplied name or description of the 'DataSource'.
-gdsrName :: Lens' GetDataSourceResponse (Maybe Text)
-gdsrName = lens _gdsrName (\s a -> s { _gdsrName = a })
-
--- | The number of data files referenced by the 'DataSource'.
-gdsrNumberOfFiles :: Lens' GetDataSourceResponse (Maybe Integer)
-gdsrNumberOfFiles =
-    lens _gdsrNumberOfFiles (\s a -> s { _gdsrNumberOfFiles = a })
-
-gdsrRDSMetadata :: Lens' GetDataSourceResponse (Maybe RDSMetadata)
-gdsrRDSMetadata = lens _gdsrRDSMetadata (\s a -> s { _gdsrRDSMetadata = a })
-
-gdsrRedshiftMetadata :: Lens' GetDataSourceResponse (Maybe RedshiftMetadata)
-gdsrRedshiftMetadata =
-    lens _gdsrRedshiftMetadata (\s a -> s { _gdsrRedshiftMetadata = a })
+gdsrsName :: Lens' GetDataSourceResponse (Maybe Text)
+gdsrsName = lens _gdsrsName (\ s a -> s{_gdsrsName = a});
 
-gdsrRoleARN :: Lens' GetDataSourceResponse (Maybe Text)
-gdsrRoleARN = lens _gdsrRoleARN (\s a -> s { _gdsrRoleARN = a })
+-- | The AWS user account from which the 'DataSource' was created. The
+-- account type can be either an AWS root account or an AWS Identity and
+-- Access Management (IAM) user account.
+gdsrsCreatedByIAMUser :: Lens' GetDataSourceResponse (Maybe Text)
+gdsrsCreatedByIAMUser = lens _gdsrsCreatedByIAMUser (\ s a -> s{_gdsrsCreatedByIAMUser = a});
 
--- | The current status of the 'DataSource'. This element can have one of the
--- following values:
---
--- 'PENDING' - Amazon Machine Language (Amazon ML) submitted a request to
--- create a 'DataSource'.  'INPROGRESS' - The creation process is underway.  'FAILED'
--- - The request to create a 'DataSource' did not run to completion. It is not
--- usable.  'COMPLETED' - The creation process completed successfully.  'DELETED' -
--- The 'DataSource' is marked as deleted. It is not usable.
-gdsrStatus :: Lens' GetDataSourceResponse (Maybe EntityStatus)
-gdsrStatus = lens _gdsrStatus (\s a -> s { _gdsrStatus = a })
+-- | A link to the file containining logs of either create 'DataSource'
+-- operation.
+gdsrsLogURI :: Lens' GetDataSourceResponse (Maybe Text)
+gdsrsLogURI = lens _gdsrsLogURI (\ s a -> s{_gdsrsLogURI = a});
 
-instance ToPath GetDataSource where
-    toPath = const "/"
+-- | The location of the data file or directory in Amazon Simple Storage
+-- Service (Amazon S3).
+gdsrsDataLocationS3 :: Lens' GetDataSourceResponse (Maybe Text)
+gdsrsDataLocationS3 = lens _gdsrsDataLocationS3 (\ s a -> s{_gdsrsDataLocationS3 = a});
 
-instance ToQuery GetDataSource where
-    toQuery = const mempty
+-- | The parameter is 'true' if statistics need to be generated from the
+-- observation data.
+gdsrsComputeStatistics :: Lens' GetDataSourceResponse (Maybe Bool)
+gdsrsComputeStatistics = lens _gdsrsComputeStatistics (\ s a -> s{_gdsrsComputeStatistics = a});
 
-instance ToHeaders GetDataSource
+-- | The description of the most recent details about creating the
+-- 'DataSource'.
+gdsrsMessage :: Lens' GetDataSourceResponse (Maybe Text)
+gdsrsMessage = lens _gdsrsMessage (\ s a -> s{_gdsrsMessage = a});
 
-instance ToJSON GetDataSource where
-    toJSON GetDataSource{..} = object
-        [ "DataSourceId" .= _gdsDataSourceId
-        , "Verbose"      .= _gdsVerbose
-        ]
+-- | Undocumented member.
+gdsrsRedshiftMetadata :: Lens' GetDataSourceResponse (Maybe RedshiftMetadata)
+gdsrsRedshiftMetadata = lens _gdsrsRedshiftMetadata (\ s a -> s{_gdsrsRedshiftMetadata = a});
 
-instance AWSRequest GetDataSource where
-    type Sv GetDataSource = MachineLearning
-    type Rs GetDataSource = GetDataSourceResponse
+-- | Undocumented member.
+gdsrsRoleARN :: Lens' GetDataSourceResponse (Maybe Text)
+gdsrsRoleARN = lens _gdsrsRoleARN (\ s a -> s{_gdsrsRoleARN = a});
 
-    request  = post "GetDataSource"
-    response = jsonResponse
+-- | A JSON string that captures the splitting rearrangement requirement of
+-- the 'DataSource'.
+gdsrsDataRearrangement :: Lens' GetDataSourceResponse (Maybe Text)
+gdsrsDataRearrangement = lens _gdsrsDataRearrangement (\ s a -> s{_gdsrsDataRearrangement = a});
 
-instance FromJSON GetDataSourceResponse where
-    parseJSON = withObject "GetDataSourceResponse" $ \o -> GetDataSourceResponse
-        <$> o .:? "ComputeStatistics"
-        <*> o .:? "CreatedAt"
-        <*> o .:? "CreatedByIamUser"
-        <*> o .:? "DataLocationS3"
-        <*> o .:? "DataRearrangement"
-        <*> o .:? "DataSizeInBytes"
-        <*> o .:? "DataSourceId"
-        <*> o .:? "DataSourceSchema"
-        <*> o .:? "LastUpdatedAt"
-        <*> o .:? "LogUri"
-        <*> o .:? "Message"
-        <*> o .:? "Name"
-        <*> o .:? "NumberOfFiles"
-        <*> o .:? "RDSMetadata"
-        <*> o .:? "RedshiftMetadata"
-        <*> o .:? "RoleARN"
-        <*> o .:? "Status"
+-- | The response status code.
+gdsrsStatus :: Lens' GetDataSourceResponse Int
+gdsrsStatus = lens _gdsrsStatus (\ s a -> s{_gdsrsStatus = a});
diff --git a/gen/Network/AWS/MachineLearning/GetEvaluation.hs b/gen/Network/AWS/MachineLearning/GetEvaluation.hs
--- a/gen/Network/AWS/MachineLearning/GetEvaluation.hs
+++ b/gen/Network/AWS/MachineLearning/GetEvaluation.hs
@@ -1,253 +1,253 @@
-{-# 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.MachineLearning.GetEvaluation
--- 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 an 'Evaluation' that includes metadata as well as the current status of
--- the 'Evaluation'.
+-- Returns an 'Evaluation' that includes metadata as well as the current
+-- status of the 'Evaluation'.
 --
--- <http://http://docs.aws.amazon.com/machine-learning/latest/APIReference/API_GetEvaluation.html>
+-- /See:/ <http://http://docs.aws.amazon.com/machine-learning/latest/APIReference/API_GetEvaluation.html AWS API Reference> for GetEvaluation.
 module Network.AWS.MachineLearning.GetEvaluation
     (
-    -- * Request
-      GetEvaluation
-    -- ** Request constructor
-    , getEvaluation
-    -- ** Request lenses
+    -- * Creating a Request
+      getEvaluation
+    , GetEvaluation
+    -- * Request Lenses
     , geEvaluationId
 
-    -- * Response
-    , GetEvaluationResponse
-    -- ** Response constructor
+    -- * Destructuring the Response
     , getEvaluationResponse
-    -- ** Response lenses
-    , gerCreatedAt
-    , gerCreatedByIamUser
-    , gerEvaluationDataSourceId
-    , gerEvaluationId
-    , gerInputDataLocationS3
-    , gerLastUpdatedAt
-    , gerLogUri
-    , gerMLModelId
-    , gerMessage
-    , gerName
-    , gerPerformanceMetrics
-    , gerStatus
+    , GetEvaluationResponse
+    -- * Response Lenses
+    , gersPerformanceMetrics
+    , gersLastUpdatedAt
+    , gersCreatedAt
+    , gersInputDataLocationS3
+    , gersMLModelId
+    , gersName
+    , gersCreatedByIAMUser
+    , gersLogURI
+    , gersMessage
+    , gersEvaluationId
+    , gersEvaluationDataSourceId
+    , gersStatus
     ) where
 
-import Network.AWS.Data (Object)
-import Network.AWS.Prelude
-import Network.AWS.Request.JSON
-import Network.AWS.MachineLearning.Types
-import qualified GHC.Exts
+import           Network.AWS.MachineLearning.Types
+import           Network.AWS.MachineLearning.Types.Product
+import           Network.AWS.Prelude
+import           Network.AWS.Request
+import           Network.AWS.Response
 
-newtype GetEvaluation = GetEvaluation
+-- | /See:/ 'getEvaluation' smart constructor.
+newtype GetEvaluation = GetEvaluation'
     { _geEvaluationId :: Text
-    } deriving (Eq, Ord, Read, Show, Monoid, IsString)
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
 
--- | 'GetEvaluation' constructor.
---
--- The fields accessible through corresponding lenses are:
+-- | Creates a value of 'GetEvaluation' with the minimum fields required to make a request.
 --
--- * 'geEvaluationId' @::@ 'Text'
+-- Use one of the following lenses to modify other fields as desired:
 --
-getEvaluation :: Text -- ^ 'geEvaluationId'
-              -> GetEvaluation
-getEvaluation p1 = GetEvaluation
-    { _geEvaluationId = p1
+-- * 'geEvaluationId'
+getEvaluation
+    :: Text -- ^ 'geEvaluationId'
+    -> GetEvaluation
+getEvaluation pEvaluationId_ =
+    GetEvaluation'
+    { _geEvaluationId = pEvaluationId_
     }
 
--- | The ID of the 'Evaluation' to retrieve. The evaluation of each 'MLModel' is
--- recorded and cataloged. The ID provides the means to access the information.
+-- | The ID of the 'Evaluation' to retrieve. The evaluation of each 'MLModel'
+-- is recorded and cataloged. The ID provides the means to access the
+-- information.
 geEvaluationId :: Lens' GetEvaluation Text
-geEvaluationId = lens _geEvaluationId (\s a -> s { _geEvaluationId = a })
+geEvaluationId = lens _geEvaluationId (\ s a -> s{_geEvaluationId = a});
 
-data GetEvaluationResponse = GetEvaluationResponse
-    { _gerCreatedAt              :: Maybe POSIX
-    , _gerCreatedByIamUser       :: Maybe Text
-    , _gerEvaluationDataSourceId :: Maybe Text
-    , _gerEvaluationId           :: Maybe Text
-    , _gerInputDataLocationS3    :: Maybe Text
-    , _gerLastUpdatedAt          :: Maybe POSIX
-    , _gerLogUri                 :: Maybe Text
-    , _gerMLModelId              :: Maybe Text
-    , _gerMessage                :: Maybe Text
-    , _gerName                   :: Maybe Text
-    , _gerPerformanceMetrics     :: Maybe PerformanceMetrics
-    , _gerStatus                 :: Maybe EntityStatus
-    } deriving (Eq, Read, Show)
+instance AWSRequest GetEvaluation where
+        type Sv GetEvaluation = MachineLearning
+        type Rs GetEvaluation = GetEvaluationResponse
+        request = postJSON
+        response
+          = receiveJSON
+              (\ s h x ->
+                 GetEvaluationResponse' <$>
+                   (x .?> "PerformanceMetrics") <*>
+                     (x .?> "LastUpdatedAt")
+                     <*> (x .?> "CreatedAt")
+                     <*> (x .?> "InputDataLocationS3")
+                     <*> (x .?> "MLModelId")
+                     <*> (x .?> "Name")
+                     <*> (x .?> "CreatedByIamUser")
+                     <*> (x .?> "LogUri")
+                     <*> (x .?> "Message")
+                     <*> (x .?> "EvaluationId")
+                     <*> (x .?> "EvaluationDataSourceId")
+                     <*> (pure (fromEnum s)))
 
--- | 'GetEvaluationResponse' constructor.
+instance ToHeaders GetEvaluation where
+        toHeaders
+          = const
+              (mconcat
+                 ["X-Amz-Target" =#
+                    ("AmazonML_20141212.GetEvaluation" :: ByteString),
+                  "Content-Type" =#
+                    ("application/x-amz-json-1.1" :: ByteString)])
+
+instance ToJSON GetEvaluation where
+        toJSON GetEvaluation'{..}
+          = object ["EvaluationId" .= _geEvaluationId]
+
+instance ToPath GetEvaluation where
+        toPath = const "/"
+
+instance ToQuery GetEvaluation where
+        toQuery = const mempty
+
+-- | Represents the output of a GetEvaluation operation and describes an
+-- 'Evaluation'.
 --
--- The fields accessible through corresponding lenses are:
+-- /See:/ 'getEvaluationResponse' smart constructor.
+data GetEvaluationResponse = GetEvaluationResponse'
+    { _gersPerformanceMetrics     :: !(Maybe PerformanceMetrics)
+    , _gersLastUpdatedAt          :: !(Maybe POSIX)
+    , _gersCreatedAt              :: !(Maybe POSIX)
+    , _gersInputDataLocationS3    :: !(Maybe Text)
+    , _gersMLModelId              :: !(Maybe Text)
+    , _gersName                   :: !(Maybe Text)
+    , _gersCreatedByIAMUser       :: !(Maybe Text)
+    , _gersLogURI                 :: !(Maybe Text)
+    , _gersMessage                :: !(Maybe Text)
+    , _gersEvaluationId           :: !(Maybe Text)
+    , _gersEvaluationDataSourceId :: !(Maybe Text)
+    , _gersStatus                 :: !Int
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'GetEvaluationResponse' with the minimum fields required to make a request.
 --
--- * 'gerCreatedAt' @::@ 'Maybe' 'UTCTime'
+-- Use one of the following lenses to modify other fields as desired:
 --
--- * 'gerCreatedByIamUser' @::@ 'Maybe' 'Text'
+-- * 'gersPerformanceMetrics'
 --
--- * 'gerEvaluationDataSourceId' @::@ 'Maybe' 'Text'
+-- * 'gersLastUpdatedAt'
 --
--- * 'gerEvaluationId' @::@ 'Maybe' 'Text'
+-- * 'gersCreatedAt'
 --
--- * 'gerInputDataLocationS3' @::@ 'Maybe' 'Text'
+-- * 'gersInputDataLocationS3'
 --
--- * 'gerLastUpdatedAt' @::@ 'Maybe' 'UTCTime'
+-- * 'gersMLModelId'
 --
--- * 'gerLogUri' @::@ 'Maybe' 'Text'
+-- * 'gersName'
 --
--- * 'gerMLModelId' @::@ 'Maybe' 'Text'
+-- * 'gersCreatedByIAMUser'
 --
--- * 'gerMessage' @::@ 'Maybe' 'Text'
+-- * 'gersLogURI'
 --
--- * 'gerName' @::@ 'Maybe' 'Text'
+-- * 'gersMessage'
 --
--- * 'gerPerformanceMetrics' @::@ 'Maybe' 'PerformanceMetrics'
+-- * 'gersEvaluationId'
 --
--- * 'gerStatus' @::@ 'Maybe' 'EntityStatus'
+-- * 'gersEvaluationDataSourceId'
 --
-getEvaluationResponse :: GetEvaluationResponse
-getEvaluationResponse = GetEvaluationResponse
-    { _gerEvaluationId           = Nothing
-    , _gerMLModelId              = Nothing
-    , _gerEvaluationDataSourceId = Nothing
-    , _gerInputDataLocationS3    = Nothing
-    , _gerCreatedByIamUser       = Nothing
-    , _gerCreatedAt              = Nothing
-    , _gerLastUpdatedAt          = Nothing
-    , _gerName                   = Nothing
-    , _gerStatus                 = Nothing
-    , _gerPerformanceMetrics     = Nothing
-    , _gerLogUri                 = Nothing
-    , _gerMessage                = Nothing
+-- * 'gersStatus'
+getEvaluationResponse
+    :: Int -- ^ 'gersStatus'
+    -> GetEvaluationResponse
+getEvaluationResponse pStatus_ =
+    GetEvaluationResponse'
+    { _gersPerformanceMetrics = Nothing
+    , _gersLastUpdatedAt = Nothing
+    , _gersCreatedAt = Nothing
+    , _gersInputDataLocationS3 = Nothing
+    , _gersMLModelId = Nothing
+    , _gersName = Nothing
+    , _gersCreatedByIAMUser = Nothing
+    , _gersLogURI = Nothing
+    , _gersMessage = Nothing
+    , _gersEvaluationId = Nothing
+    , _gersEvaluationDataSourceId = Nothing
+    , _gersStatus = pStatus_
     }
 
--- | The time that the 'Evaluation' was created. The time is expressed in epoch time.
-gerCreatedAt :: Lens' GetEvaluationResponse (Maybe UTCTime)
-gerCreatedAt = lens _gerCreatedAt (\s a -> s { _gerCreatedAt = a }) . mapping _Time
-
--- | The AWS user account that invoked the evaluation. The account type can be
--- either an AWS root account or an AWS Identity and Access Management (IAM)
--- user account.
-gerCreatedByIamUser :: Lens' GetEvaluationResponse (Maybe Text)
-gerCreatedByIamUser =
-    lens _gerCreatedByIamUser (\s a -> s { _gerCreatedByIamUser = a })
-
--- | The 'DataSource' used for this evaluation.
-gerEvaluationDataSourceId :: Lens' GetEvaluationResponse (Maybe Text)
-gerEvaluationDataSourceId =
-    lens _gerEvaluationDataSourceId
-        (\s a -> s { _gerEvaluationDataSourceId = a })
-
--- | The evaluation ID which is same as the 'EvaluationId' in the request.
-gerEvaluationId :: Lens' GetEvaluationResponse (Maybe Text)
-gerEvaluationId = lens _gerEvaluationId (\s a -> s { _gerEvaluationId = a })
-
--- | The location of the data file or directory in Amazon Simple Storage Service
--- (Amazon S3).
-gerInputDataLocationS3 :: Lens' GetEvaluationResponse (Maybe Text)
-gerInputDataLocationS3 =
-    lens _gerInputDataLocationS3 (\s a -> s { _gerInputDataLocationS3 = a })
+-- | Measurements of how well the 'MLModel' performed using observations
+-- referenced by the 'DataSource'. One of the following metric is returned
+-- based on the type of the 'MLModel':
+--
+-- -   BinaryAUC: A binary 'MLModel' uses the Area Under the Curve (AUC)
+--     technique to measure performance.
+--
+-- -   RegressionRMSE: A regression 'MLModel' uses the Root Mean Square
+--     Error (RMSE) technique to measure performance. RMSE measures the
+--     difference between predicted and actual values for a single
+--     variable.
+--
+-- -   MulticlassAvgFScore: A multiclass 'MLModel' uses the F1 score
+--     technique to measure performance.
+--
+-- For more information about performance metrics, please see the
+-- <http://docs.aws.amazon.com/machine-learning/latest/dg Amazon Machine Learning Developer Guide>.
+gersPerformanceMetrics :: Lens' GetEvaluationResponse (Maybe PerformanceMetrics)
+gersPerformanceMetrics = lens _gersPerformanceMetrics (\ s a -> s{_gersPerformanceMetrics = a});
 
 -- | The time of the most recent edit to the 'BatchPrediction'. The time is
 -- expressed in epoch time.
-gerLastUpdatedAt :: Lens' GetEvaluationResponse (Maybe UTCTime)
-gerLastUpdatedAt = lens _gerLastUpdatedAt (\s a -> s { _gerLastUpdatedAt = a }) . mapping _Time
+gersLastUpdatedAt :: Lens' GetEvaluationResponse (Maybe UTCTime)
+gersLastUpdatedAt = lens _gersLastUpdatedAt (\ s a -> s{_gersLastUpdatedAt = a}) . mapping _Time;
 
--- | A link to the file that contains logs of the 'CreateEvaluation' operation.
-gerLogUri :: Lens' GetEvaluationResponse (Maybe Text)
-gerLogUri = lens _gerLogUri (\s a -> s { _gerLogUri = a })
+-- | The time that the 'Evaluation' was created. The time is expressed in
+-- epoch time.
+gersCreatedAt :: Lens' GetEvaluationResponse (Maybe UTCTime)
+gersCreatedAt = lens _gersCreatedAt (\ s a -> s{_gersCreatedAt = a}) . mapping _Time;
 
--- | The ID of the 'MLModel' that was the focus of the evaluation.
-gerMLModelId :: Lens' GetEvaluationResponse (Maybe Text)
-gerMLModelId = lens _gerMLModelId (\s a -> s { _gerMLModelId = a })
+-- | The location of the data file or directory in Amazon Simple Storage
+-- Service (Amazon S3).
+gersInputDataLocationS3 :: Lens' GetEvaluationResponse (Maybe Text)
+gersInputDataLocationS3 = lens _gersInputDataLocationS3 (\ s a -> s{_gersInputDataLocationS3 = a});
 
--- | A description of the most recent details about evaluating the 'MLModel'.
-gerMessage :: Lens' GetEvaluationResponse (Maybe Text)
-gerMessage = lens _gerMessage (\s a -> s { _gerMessage = a })
+-- | The ID of the 'MLModel' that was the focus of the evaluation.
+gersMLModelId :: Lens' GetEvaluationResponse (Maybe Text)
+gersMLModelId = lens _gersMLModelId (\ s a -> s{_gersMLModelId = a});
 
 -- | A user-supplied name or description of the 'Evaluation'.
-gerName :: Lens' GetEvaluationResponse (Maybe Text)
-gerName = lens _gerName (\s a -> s { _gerName = a })
-
--- | Measurements of how well the 'MLModel' performed using observations referenced
--- by the 'DataSource'. One of the following metric is returned based on the type
--- of the 'MLModel':
---
--- BinaryAUC: A binary 'MLModel' uses the Area Under the Curve (AUC) technique
--- to measure performance.
---
--- RegressionRMSE: A regression 'MLModel' uses the Root Mean Square Error
--- (RMSE) technique to measure performance. RMSE measures the difference between
--- predicted and actual values for a single variable.
---
--- MulticlassAvgFScore: A multiclass 'MLModel' uses the F1 score technique to
--- measure performance.
---
--- For more information about performance metrics, please see the <http://docs.aws.amazon.com/machine-learning/latest/dg AmazonMachine Learning Developer Guide>.
-gerPerformanceMetrics :: Lens' GetEvaluationResponse (Maybe PerformanceMetrics)
-gerPerformanceMetrics =
-    lens _gerPerformanceMetrics (\s a -> s { _gerPerformanceMetrics = a })
-
--- | The status of the evaluation. This element can have one of the following
--- values:
---
--- 'PENDING' - Amazon Machine Language (Amazon ML) submitted a request to
--- evaluate an 'MLModel'.  'INPROGRESS' - The evaluation is underway.  'FAILED' - The
--- request to evaluate an 'MLModel' did not run to completion. It is not usable.  'COMPLETED' - The evaluation process completed successfully.  'DELETED' - The 'Evaluation'
--- is marked as deleted. It is not usable.
-gerStatus :: Lens' GetEvaluationResponse (Maybe EntityStatus)
-gerStatus = lens _gerStatus (\s a -> s { _gerStatus = a })
-
-instance ToPath GetEvaluation where
-    toPath = const "/"
+gersName :: Lens' GetEvaluationResponse (Maybe Text)
+gersName = lens _gersName (\ s a -> s{_gersName = a});
 
-instance ToQuery GetEvaluation where
-    toQuery = const mempty
+-- | The AWS user account that invoked the evaluation. The account type can
+-- be either an AWS root account or an AWS Identity and Access Management
+-- (IAM) user account.
+gersCreatedByIAMUser :: Lens' GetEvaluationResponse (Maybe Text)
+gersCreatedByIAMUser = lens _gersCreatedByIAMUser (\ s a -> s{_gersCreatedByIAMUser = a});
 
-instance ToHeaders GetEvaluation
+-- | A link to the file that contains logs of the CreateEvaluation operation.
+gersLogURI :: Lens' GetEvaluationResponse (Maybe Text)
+gersLogURI = lens _gersLogURI (\ s a -> s{_gersLogURI = a});
 
-instance ToJSON GetEvaluation where
-    toJSON GetEvaluation{..} = object
-        [ "EvaluationId" .= _geEvaluationId
-        ]
+-- | A description of the most recent details about evaluating the 'MLModel'.
+gersMessage :: Lens' GetEvaluationResponse (Maybe Text)
+gersMessage = lens _gersMessage (\ s a -> s{_gersMessage = a});
 
-instance AWSRequest GetEvaluation where
-    type Sv GetEvaluation = MachineLearning
-    type Rs GetEvaluation = GetEvaluationResponse
+-- | The evaluation ID which is same as the 'EvaluationId' in the request.
+gersEvaluationId :: Lens' GetEvaluationResponse (Maybe Text)
+gersEvaluationId = lens _gersEvaluationId (\ s a -> s{_gersEvaluationId = a});
 
-    request  = post "GetEvaluation"
-    response = jsonResponse
+-- | The 'DataSource' used for this evaluation.
+gersEvaluationDataSourceId :: Lens' GetEvaluationResponse (Maybe Text)
+gersEvaluationDataSourceId = lens _gersEvaluationDataSourceId (\ s a -> s{_gersEvaluationDataSourceId = a});
 
-instance FromJSON GetEvaluationResponse where
-    parseJSON = withObject "GetEvaluationResponse" $ \o -> GetEvaluationResponse
-        <$> o .:? "CreatedAt"
-        <*> o .:? "CreatedByIamUser"
-        <*> o .:? "EvaluationDataSourceId"
-        <*> o .:? "EvaluationId"
-        <*> o .:? "InputDataLocationS3"
-        <*> o .:? "LastUpdatedAt"
-        <*> o .:? "LogUri"
-        <*> o .:? "MLModelId"
-        <*> o .:? "Message"
-        <*> o .:? "Name"
-        <*> o .:? "PerformanceMetrics"
-        <*> o .:? "Status"
+-- | The response status code.
+gersStatus :: Lens' GetEvaluationResponse Int
+gersStatus = lens _gersStatus (\ s a -> s{_gersStatus = a});
diff --git a/gen/Network/AWS/MachineLearning/GetMLModel.hs b/gen/Network/AWS/MachineLearning/GetMLModel.hs
--- a/gen/Network/AWS/MachineLearning/GetMLModel.hs
+++ b/gen/Network/AWS/MachineLearning/GetMLModel.hs
@@ -1,376 +1,373 @@
-{-# 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.MachineLearning.GetMLModel
--- 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 an 'MLModel' that includes detailed metadata, and data source
+-- Returns an 'MLModel' that includes detailed metadata, and data source
 -- information as well as the current status of the 'MLModel'.
 --
 -- 'GetMLModel' provides results in normal or verbose format.
 --
--- <http://http://docs.aws.amazon.com/machine-learning/latest/APIReference/API_GetMLModel.html>
+-- /See:/ <http://http://docs.aws.amazon.com/machine-learning/latest/APIReference/API_GetMLModel.html AWS API Reference> for GetMLModel.
 module Network.AWS.MachineLearning.GetMLModel
     (
-    -- * Request
-      GetMLModel
-    -- ** Request constructor
-    , getMLModel
-    -- ** Request lenses
-    , gmlmMLModelId
+    -- * Creating a Request
+      getMLModel
+    , GetMLModel
+    -- * Request Lenses
     , gmlmVerbose
+    , gmlmMLModelId
 
-    -- * Response
-    , GetMLModelResponse
-    -- ** Response constructor
+    -- * Destructuring the Response
     , getMLModelResponse
-    -- ** Response lenses
-    , gmlmrCreatedAt
-    , gmlmrCreatedByIamUser
-    , gmlmrEndpointInfo
-    , gmlmrInputDataLocationS3
-    , gmlmrLastUpdatedAt
-    , gmlmrLogUri
-    , gmlmrMLModelId
-    , gmlmrMLModelType
-    , gmlmrMessage
-    , gmlmrName
-    , gmlmrRecipe
-    , gmlmrSchema
-    , gmlmrScoreThreshold
-    , gmlmrScoreThresholdLastUpdatedAt
-    , gmlmrSizeInBytes
-    , gmlmrStatus
-    , gmlmrTrainingDataSourceId
-    , gmlmrTrainingParameters
+    , GetMLModelResponse
+    -- * Response Lenses
+    , gmlmrsTrainingParameters
+    , gmlmrsLastUpdatedAt
+    , gmlmrsCreatedAt
+    , gmlmrsScoreThresholdLastUpdatedAt
+    , gmlmrsRecipe
+    , gmlmrsInputDataLocationS3
+    , gmlmrsSizeInBytes
+    , gmlmrsMLModelId
+    , gmlmrsSchema
+    , gmlmrsScoreThreshold
+    , gmlmrsName
+    , gmlmrsCreatedByIAMUser
+    , gmlmrsLogURI
+    , gmlmrsEndpointInfo
+    , gmlmrsTrainingDataSourceId
+    , gmlmrsMessage
+    , gmlmrsMLModelType
+    , gmlmrsStatus
     ) where
 
-import Network.AWS.Data (Object)
-import Network.AWS.Prelude
-import Network.AWS.Request.JSON
-import Network.AWS.MachineLearning.Types
-import qualified GHC.Exts
+import           Network.AWS.MachineLearning.Types
+import           Network.AWS.MachineLearning.Types.Product
+import           Network.AWS.Prelude
+import           Network.AWS.Request
+import           Network.AWS.Response
 
-data GetMLModel = GetMLModel
-    { _gmlmMLModelId :: Text
-    , _gmlmVerbose   :: Maybe Bool
-    } deriving (Eq, Ord, Read, Show)
+-- | /See:/ 'getMLModel' smart constructor.
+data GetMLModel = GetMLModel'
+    { _gmlmVerbose   :: !(Maybe Bool)
+    , _gmlmMLModelId :: !Text
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
 
--- | 'GetMLModel' constructor.
---
--- The fields accessible through corresponding lenses are:
+-- | Creates a value of 'GetMLModel' with the minimum fields required to make a request.
 --
--- * 'gmlmMLModelId' @::@ 'Text'
+-- Use one of the following lenses to modify other fields as desired:
 --
--- * 'gmlmVerbose' @::@ 'Maybe' 'Bool'
+-- * 'gmlmVerbose'
 --
-getMLModel :: Text -- ^ 'gmlmMLModelId'
-           -> GetMLModel
-getMLModel p1 = GetMLModel
-    { _gmlmMLModelId = p1
-    , _gmlmVerbose   = Nothing
+-- * 'gmlmMLModelId'
+getMLModel
+    :: Text -- ^ 'gmlmMLModelId'
+    -> GetMLModel
+getMLModel pMLModelId_ =
+    GetMLModel'
+    { _gmlmVerbose = Nothing
+    , _gmlmMLModelId = pMLModelId_
     }
 
--- | The ID assigned to the 'MLModel' at creation.
-gmlmMLModelId :: Lens' GetMLModel Text
-gmlmMLModelId = lens _gmlmMLModelId (\s a -> s { _gmlmMLModelId = a })
-
 -- | Specifies whether the 'GetMLModel' operation should return 'Recipe'.
 --
 -- If true, 'Recipe' is returned.
 --
 -- If false, 'Recipe' is not returned.
 gmlmVerbose :: Lens' GetMLModel (Maybe Bool)
-gmlmVerbose = lens _gmlmVerbose (\s a -> s { _gmlmVerbose = a })
+gmlmVerbose = lens _gmlmVerbose (\ s a -> s{_gmlmVerbose = a});
 
-data GetMLModelResponse = GetMLModelResponse
-    { _gmlmrCreatedAt                   :: Maybe POSIX
-    , _gmlmrCreatedByIamUser            :: Maybe Text
-    , _gmlmrEndpointInfo                :: Maybe RealtimeEndpointInfo
-    , _gmlmrInputDataLocationS3         :: Maybe Text
-    , _gmlmrLastUpdatedAt               :: Maybe POSIX
-    , _gmlmrLogUri                      :: Maybe Text
-    , _gmlmrMLModelId                   :: Maybe Text
-    , _gmlmrMLModelType                 :: Maybe MLModelType
-    , _gmlmrMessage                     :: Maybe Text
-    , _gmlmrName                        :: Maybe Text
-    , _gmlmrRecipe                      :: Maybe Text
-    , _gmlmrSchema                      :: Maybe Text
-    , _gmlmrScoreThreshold              :: Maybe Double
-    , _gmlmrScoreThresholdLastUpdatedAt :: Maybe POSIX
-    , _gmlmrSizeInBytes                 :: Maybe Integer
-    , _gmlmrStatus                      :: Maybe EntityStatus
-    , _gmlmrTrainingDataSourceId        :: Maybe Text
-    , _gmlmrTrainingParameters          :: Map Text Text
-    } deriving (Eq, Read, Show)
+-- | The ID assigned to the 'MLModel' at creation.
+gmlmMLModelId :: Lens' GetMLModel Text
+gmlmMLModelId = lens _gmlmMLModelId (\ s a -> s{_gmlmMLModelId = a});
 
--- | 'GetMLModelResponse' constructor.
+instance AWSRequest GetMLModel where
+        type Sv GetMLModel = MachineLearning
+        type Rs GetMLModel = GetMLModelResponse
+        request = postJSON
+        response
+          = receiveJSON
+              (\ s h x ->
+                 GetMLModelResponse' <$>
+                   (x .?> "TrainingParameters" .!@ mempty) <*>
+                     (x .?> "LastUpdatedAt")
+                     <*> (x .?> "CreatedAt")
+                     <*> (x .?> "ScoreThresholdLastUpdatedAt")
+                     <*> (x .?> "Recipe")
+                     <*> (x .?> "InputDataLocationS3")
+                     <*> (x .?> "SizeInBytes")
+                     <*> (x .?> "MLModelId")
+                     <*> (x .?> "Schema")
+                     <*> (x .?> "ScoreThreshold")
+                     <*> (x .?> "Name")
+                     <*> (x .?> "CreatedByIamUser")
+                     <*> (x .?> "LogUri")
+                     <*> (x .?> "EndpointInfo")
+                     <*> (x .?> "TrainingDataSourceId")
+                     <*> (x .?> "Message")
+                     <*> (x .?> "MLModelType")
+                     <*> (pure (fromEnum s)))
+
+instance ToHeaders GetMLModel where
+        toHeaders
+          = const
+              (mconcat
+                 ["X-Amz-Target" =#
+                    ("AmazonML_20141212.GetMLModel" :: ByteString),
+                  "Content-Type" =#
+                    ("application/x-amz-json-1.1" :: ByteString)])
+
+instance ToJSON GetMLModel where
+        toJSON GetMLModel'{..}
+          = object
+              ["Verbose" .= _gmlmVerbose,
+               "MLModelId" .= _gmlmMLModelId]
+
+instance ToPath GetMLModel where
+        toPath = const "/"
+
+instance ToQuery GetMLModel where
+        toQuery = const mempty
+
+-- | Represents the output of a GetMLModel operation, and provides detailed
+-- information about a 'MLModel'.
 --
--- The fields accessible through corresponding lenses are:
+-- /See:/ 'getMLModelResponse' smart constructor.
+data GetMLModelResponse = GetMLModelResponse'
+    { _gmlmrsTrainingParameters          :: !(Maybe (Map Text Text))
+    , _gmlmrsLastUpdatedAt               :: !(Maybe POSIX)
+    , _gmlmrsCreatedAt                   :: !(Maybe POSIX)
+    , _gmlmrsScoreThresholdLastUpdatedAt :: !(Maybe POSIX)
+    , _gmlmrsRecipe                      :: !(Maybe Text)
+    , _gmlmrsInputDataLocationS3         :: !(Maybe Text)
+    , _gmlmrsSizeInBytes                 :: !(Maybe Integer)
+    , _gmlmrsMLModelId                   :: !(Maybe Text)
+    , _gmlmrsSchema                      :: !(Maybe Text)
+    , _gmlmrsScoreThreshold              :: !(Maybe Double)
+    , _gmlmrsName                        :: !(Maybe Text)
+    , _gmlmrsCreatedByIAMUser            :: !(Maybe Text)
+    , _gmlmrsLogURI                      :: !(Maybe Text)
+    , _gmlmrsEndpointInfo                :: !(Maybe RealtimeEndpointInfo)
+    , _gmlmrsTrainingDataSourceId        :: !(Maybe Text)
+    , _gmlmrsMessage                     :: !(Maybe Text)
+    , _gmlmrsMLModelType                 :: !(Maybe MLModelType)
+    , _gmlmrsStatus                      :: !Int
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'GetMLModelResponse' with the minimum fields required to make a request.
 --
--- * 'gmlmrCreatedAt' @::@ 'Maybe' 'UTCTime'
+-- Use one of the following lenses to modify other fields as desired:
 --
--- * 'gmlmrCreatedByIamUser' @::@ 'Maybe' 'Text'
+-- * 'gmlmrsTrainingParameters'
 --
--- * 'gmlmrEndpointInfo' @::@ 'Maybe' 'RealtimeEndpointInfo'
+-- * 'gmlmrsLastUpdatedAt'
 --
--- * 'gmlmrInputDataLocationS3' @::@ 'Maybe' 'Text'
+-- * 'gmlmrsCreatedAt'
 --
--- * 'gmlmrLastUpdatedAt' @::@ 'Maybe' 'UTCTime'
+-- * 'gmlmrsScoreThresholdLastUpdatedAt'
 --
--- * 'gmlmrLogUri' @::@ 'Maybe' 'Text'
+-- * 'gmlmrsRecipe'
 --
--- * 'gmlmrMLModelId' @::@ 'Maybe' 'Text'
+-- * 'gmlmrsInputDataLocationS3'
 --
--- * 'gmlmrMLModelType' @::@ 'Maybe' 'MLModelType'
+-- * 'gmlmrsSizeInBytes'
 --
--- * 'gmlmrMessage' @::@ 'Maybe' 'Text'
+-- * 'gmlmrsMLModelId'
 --
--- * 'gmlmrName' @::@ 'Maybe' 'Text'
+-- * 'gmlmrsSchema'
 --
--- * 'gmlmrRecipe' @::@ 'Maybe' 'Text'
+-- * 'gmlmrsScoreThreshold'
 --
--- * 'gmlmrSchema' @::@ 'Maybe' 'Text'
+-- * 'gmlmrsName'
 --
--- * 'gmlmrScoreThreshold' @::@ 'Maybe' 'Double'
+-- * 'gmlmrsCreatedByIAMUser'
 --
--- * 'gmlmrScoreThresholdLastUpdatedAt' @::@ 'Maybe' 'UTCTime'
+-- * 'gmlmrsLogURI'
 --
--- * 'gmlmrSizeInBytes' @::@ 'Maybe' 'Integer'
+-- * 'gmlmrsEndpointInfo'
 --
--- * 'gmlmrStatus' @::@ 'Maybe' 'EntityStatus'
+-- * 'gmlmrsTrainingDataSourceId'
 --
--- * 'gmlmrTrainingDataSourceId' @::@ 'Maybe' 'Text'
+-- * 'gmlmrsMessage'
 --
--- * 'gmlmrTrainingParameters' @::@ 'HashMap' 'Text' 'Text'
+-- * 'gmlmrsMLModelType'
 --
-getMLModelResponse :: GetMLModelResponse
-getMLModelResponse = GetMLModelResponse
-    { _gmlmrMLModelId                   = Nothing
-    , _gmlmrTrainingDataSourceId        = Nothing
-    , _gmlmrCreatedByIamUser            = Nothing
-    , _gmlmrCreatedAt                   = Nothing
-    , _gmlmrLastUpdatedAt               = Nothing
-    , _gmlmrName                        = Nothing
-    , _gmlmrStatus                      = Nothing
-    , _gmlmrSizeInBytes                 = Nothing
-    , _gmlmrEndpointInfo                = Nothing
-    , _gmlmrTrainingParameters          = mempty
-    , _gmlmrInputDataLocationS3         = Nothing
-    , _gmlmrMLModelType                 = Nothing
-    , _gmlmrScoreThreshold              = Nothing
-    , _gmlmrScoreThresholdLastUpdatedAt = Nothing
-    , _gmlmrLogUri                      = Nothing
-    , _gmlmrMessage                     = Nothing
-    , _gmlmrRecipe                      = Nothing
-    , _gmlmrSchema                      = Nothing
+-- * 'gmlmrsStatus'
+getMLModelResponse
+    :: Int -- ^ 'gmlmrsStatus'
+    -> GetMLModelResponse
+getMLModelResponse pStatus_ =
+    GetMLModelResponse'
+    { _gmlmrsTrainingParameters = Nothing
+    , _gmlmrsLastUpdatedAt = Nothing
+    , _gmlmrsCreatedAt = Nothing
+    , _gmlmrsScoreThresholdLastUpdatedAt = Nothing
+    , _gmlmrsRecipe = Nothing
+    , _gmlmrsInputDataLocationS3 = Nothing
+    , _gmlmrsSizeInBytes = Nothing
+    , _gmlmrsMLModelId = Nothing
+    , _gmlmrsSchema = Nothing
+    , _gmlmrsScoreThreshold = Nothing
+    , _gmlmrsName = Nothing
+    , _gmlmrsCreatedByIAMUser = Nothing
+    , _gmlmrsLogURI = Nothing
+    , _gmlmrsEndpointInfo = Nothing
+    , _gmlmrsTrainingDataSourceId = Nothing
+    , _gmlmrsMessage = Nothing
+    , _gmlmrsMLModelType = Nothing
+    , _gmlmrsStatus = pStatus_
     }
 
--- | The time that the 'MLModel' was created. The time is expressed in epoch time.
-gmlmrCreatedAt :: Lens' GetMLModelResponse (Maybe UTCTime)
-gmlmrCreatedAt = lens _gmlmrCreatedAt (\s a -> s { _gmlmrCreatedAt = a }) . mapping _Time
-
--- | The AWS user account from which the 'MLModel' was created. The account type can
--- be either an AWS root account or an AWS Identity and Access Management (IAM)
--- user account.
-gmlmrCreatedByIamUser :: Lens' GetMLModelResponse (Maybe Text)
-gmlmrCreatedByIamUser =
-    lens _gmlmrCreatedByIamUser (\s a -> s { _gmlmrCreatedByIamUser = a })
-
--- | The current endpoint of the 'MLModel'
-gmlmrEndpointInfo :: Lens' GetMLModelResponse (Maybe RealtimeEndpointInfo)
-gmlmrEndpointInfo =
-    lens _gmlmrEndpointInfo (\s a -> s { _gmlmrEndpointInfo = a })
-
--- | The location of the data file or directory in Amazon Simple Storage Service
--- (Amazon S3).
-gmlmrInputDataLocationS3 :: Lens' GetMLModelResponse (Maybe Text)
-gmlmrInputDataLocationS3 =
-    lens _gmlmrInputDataLocationS3
-        (\s a -> s { _gmlmrInputDataLocationS3 = a })
-
--- | The time of the most recent edit to the 'MLModel'. The time is expressed in
--- epoch time.
-gmlmrLastUpdatedAt :: Lens' GetMLModelResponse (Maybe UTCTime)
-gmlmrLastUpdatedAt =
-    lens _gmlmrLastUpdatedAt (\s a -> s { _gmlmrLastUpdatedAt = a })
-        . mapping _Time
-
--- | A link to the file that contains logs of the 'CreateMLModel' operation.
-gmlmrLogUri :: Lens' GetMLModelResponse (Maybe Text)
-gmlmrLogUri = lens _gmlmrLogUri (\s a -> s { _gmlmrLogUri = a })
-
--- | The MLModel ID which is same as the 'MLModelId' in the request.
-gmlmrMLModelId :: Lens' GetMLModelResponse (Maybe Text)
-gmlmrMLModelId = lens _gmlmrMLModelId (\s a -> s { _gmlmrMLModelId = a })
-
--- | Identifies the 'MLModel' category. The following are the available types:
+-- | A list of the training parameters in the 'MLModel'. The list is
+-- implemented as a map of key\/value pairs.
 --
--- REGRESSION -- Produces a numeric result. For example, "What listing price
--- should a house have?" BINARY -- Produces one of two possible results. For
--- example, "Is this an e-commerce website?" MULTICLASS -- Produces more than
--- two possible results. For example, "Is this a HIGH, LOW or MEDIUM risk trade?"
+-- The following is the current set of training parameters:
 --
-gmlmrMLModelType :: Lens' GetMLModelResponse (Maybe MLModelType)
-gmlmrMLModelType = lens _gmlmrMLModelType (\s a -> s { _gmlmrMLModelType = a })
-
--- | Description of the most recent details about accessing the 'MLModel'.
-gmlmrMessage :: Lens' GetMLModelResponse (Maybe Text)
-gmlmrMessage = lens _gmlmrMessage (\s a -> s { _gmlmrMessage = a })
-
--- | A user-supplied name or description of the 'MLModel'.
-gmlmrName :: Lens' GetMLModelResponse (Maybe Text)
-gmlmrName = lens _gmlmrName (\s a -> s { _gmlmrName = a })
-
--- | The recipe to use when training the 'MLModel'. The 'Recipe' provides detailed
--- information about the observation data to use during training, as well as
--- manipulations to perform on the observation data during training.
+-- -   'sgd.l1RegularizationAmount' - Coefficient regularization L1 norm.
+--     It controls overfitting the data by penalizing large coefficients.
+--     This tends to drive coefficients to zero, resulting in a sparse
+--     feature set. If you use this parameter, specify a small value, such
+--     as 1.0E-04 or 1.0E-08.
 --
--- Note This parameter is provided as part of the verbose format.
+--     The value is a double that ranges from 0 to MAX_DOUBLE. The default
+--     is not to use L1 normalization. The parameter cannot be used when
+--     'L2' is specified. Use this parameter sparingly.
 --
-gmlmrRecipe :: Lens' GetMLModelResponse (Maybe Text)
-gmlmrRecipe = lens _gmlmrRecipe (\s a -> s { _gmlmrRecipe = a })
-
--- | The schema used by all of the data files referenced by the 'DataSource'.
+-- -   'sgd.l2RegularizationAmount' - Coefficient regularization L2 norm.
+--     It controls overfitting the data by penalizing large coefficients.
+--     This tends to drive coefficients to small, nonzero values. If you
+--     use this parameter, specify a small value, such as 1.0E-04 or
+--     1.0E-08.
 --
--- Note This parameter is provided as part of the verbose format.
+--     The value is a double that ranges from 0 to MAX_DOUBLE. The default
+--     is not to use L2 normalization. This parameter cannot be used when
+--     'L1' is specified. Use this parameter sparingly.
 --
-gmlmrSchema :: Lens' GetMLModelResponse (Maybe Text)
-gmlmrSchema = lens _gmlmrSchema (\s a -> s { _gmlmrSchema = a })
-
--- | The scoring threshold is used in binary classification 'MLModel's, and marks
--- the boundary between a positive prediction and a negative prediction.
+-- -   'sgd.maxPasses' - The number of times that the training process
+--     traverses the observations to build the 'MLModel'. The value is an
+--     integer that ranges from 1 to 10000. The default value is 10.
 --
--- Output values greater than or equal to the threshold receive a positive
--- result from the MLModel, such as 'true'. Output values less than the threshold
--- receive a negative response from the MLModel, such as 'false'.
-gmlmrScoreThreshold :: Lens' GetMLModelResponse (Maybe Double)
-gmlmrScoreThreshold =
-    lens _gmlmrScoreThreshold (\s a -> s { _gmlmrScoreThreshold = a })
+-- -   'sgd.maxMLModelSizeInBytes' - The maximum allowed size of the model.
+--     Depending on the input data, the model size might affect
+--     performance.
+--
+--     The value is an integer that ranges from 100000 to 2147483648. The
+--     default value is 33554432.
+--
+gmlmrsTrainingParameters :: Lens' GetMLModelResponse (HashMap Text Text)
+gmlmrsTrainingParameters = lens _gmlmrsTrainingParameters (\ s a -> s{_gmlmrsTrainingParameters = a}) . _Default . _Map;
 
--- | The time of the most recent edit to the 'ScoreThreshold'. The time is expressed
+-- | The time of the most recent edit to the 'MLModel'. The time is expressed
 -- in epoch time.
-gmlmrScoreThresholdLastUpdatedAt :: Lens' GetMLModelResponse (Maybe UTCTime)
-gmlmrScoreThresholdLastUpdatedAt =
-    lens _gmlmrScoreThresholdLastUpdatedAt
-        (\s a -> s { _gmlmrScoreThresholdLastUpdatedAt = a })
-            . mapping _Time
-
-gmlmrSizeInBytes :: Lens' GetMLModelResponse (Maybe Integer)
-gmlmrSizeInBytes = lens _gmlmrSizeInBytes (\s a -> s { _gmlmrSizeInBytes = a })
+gmlmrsLastUpdatedAt :: Lens' GetMLModelResponse (Maybe UTCTime)
+gmlmrsLastUpdatedAt = lens _gmlmrsLastUpdatedAt (\ s a -> s{_gmlmrsLastUpdatedAt = a}) . mapping _Time;
 
--- | The current status of the 'MLModel'. This element can have one of the following
--- values:
---
--- 'PENDING' - Amazon Machine Learning (Amazon ML) submitted a request to
--- describe a 'MLModel'.  'INPROGRESS' - The request is processing.  'FAILED' - The
--- request did not run to completion. It is not usable.  'COMPLETED' - The request
--- completed successfully.  'DELETED' - The 'MLModel' is marked as deleted. It is
--- not usable.
-gmlmrStatus :: Lens' GetMLModelResponse (Maybe EntityStatus)
-gmlmrStatus = lens _gmlmrStatus (\s a -> s { _gmlmrStatus = a })
+-- | The time that the 'MLModel' was created. The time is expressed in epoch
+-- time.
+gmlmrsCreatedAt :: Lens' GetMLModelResponse (Maybe UTCTime)
+gmlmrsCreatedAt = lens _gmlmrsCreatedAt (\ s a -> s{_gmlmrsCreatedAt = a}) . mapping _Time;
 
--- | The ID of the training 'DataSource'.
-gmlmrTrainingDataSourceId :: Lens' GetMLModelResponse (Maybe Text)
-gmlmrTrainingDataSourceId =
-    lens _gmlmrTrainingDataSourceId
-        (\s a -> s { _gmlmrTrainingDataSourceId = a })
+-- | The time of the most recent edit to the 'ScoreThreshold'. The time is
+-- expressed in epoch time.
+gmlmrsScoreThresholdLastUpdatedAt :: Lens' GetMLModelResponse (Maybe UTCTime)
+gmlmrsScoreThresholdLastUpdatedAt = lens _gmlmrsScoreThresholdLastUpdatedAt (\ s a -> s{_gmlmrsScoreThresholdLastUpdatedAt = a}) . mapping _Time;
 
--- | A list of the training parameters in the 'MLModel'. The list is implemented as
--- a map of key/value pairs.
---
--- The following is the current set of training parameters:
---
--- 'sgd.l1RegularizationAmount' - Coefficient regularization L1 norm. It
--- controls overfitting the data by penalizing large coefficients. This tends to
--- drive coefficients to zero, resulting in a sparse feature set. If you use
--- this parameter, specify a small value, such as 1.0E-04 or 1.0E-08.
---
--- The value is a double that ranges from 0 to MAX_DOUBLE. The default is not
--- to use L1 normalization. The parameter cannot be used when 'L2' is specified.
--- Use this parameter sparingly.
---
--- 'sgd.l2RegularizationAmount' - Coefficient regularization L2 norm. It
--- controls overfitting the data by penalizing large coefficients. This tends to
--- drive coefficients to small, nonzero values. If you use this parameter,
--- specify a small value, such as 1.0E-04 or 1.0E-08.
---
--- The value is a double that ranges from 0 to MAX_DOUBLE. The default is not
--- to use L2 normalization. This parameter cannot be used when 'L1' is specified.
--- Use this parameter sparingly.
+-- | The recipe to use when training the 'MLModel'. The 'Recipe' provides
+-- detailed information about the observation data to use during training,
+-- as well as manipulations to perform on the observation data during
+-- training.
 --
--- 'sgd.maxPasses' - The number of times that the training process traverses the
--- observations to build the 'MLModel'. The value is an integer that ranges from 1
--- to 10000. The default value is 10.
+-- Note
 --
--- 'sgd.maxMLModelSizeInBytes' - The maximum allowed size of the model.
--- Depending on the input data, the model size might affect performance.
+-- This parameter is provided as part of the verbose format.
+gmlmrsRecipe :: Lens' GetMLModelResponse (Maybe Text)
+gmlmrsRecipe = lens _gmlmrsRecipe (\ s a -> s{_gmlmrsRecipe = a});
+
+-- | The location of the data file or directory in Amazon Simple Storage
+-- Service (Amazon S3).
+gmlmrsInputDataLocationS3 :: Lens' GetMLModelResponse (Maybe Text)
+gmlmrsInputDataLocationS3 = lens _gmlmrsInputDataLocationS3 (\ s a -> s{_gmlmrsInputDataLocationS3 = a});
+
+-- | Undocumented member.
+gmlmrsSizeInBytes :: Lens' GetMLModelResponse (Maybe Integer)
+gmlmrsSizeInBytes = lens _gmlmrsSizeInBytes (\ s a -> s{_gmlmrsSizeInBytes = a});
+
+-- | The MLModel ID which is same as the 'MLModelId' in the request.
+gmlmrsMLModelId :: Lens' GetMLModelResponse (Maybe Text)
+gmlmrsMLModelId = lens _gmlmrsMLModelId (\ s a -> s{_gmlmrsMLModelId = a});
+
+-- | The schema used by all of the data files referenced by the 'DataSource'.
 --
--- The value is an integer that ranges from 100000 to 2147483648. The default
--- value is 33554432.
+-- Note
 --
+-- This parameter is provided as part of the verbose format.
+gmlmrsSchema :: Lens' GetMLModelResponse (Maybe Text)
+gmlmrsSchema = lens _gmlmrsSchema (\ s a -> s{_gmlmrsSchema = a});
+
+-- | The scoring threshold is used in binary classification 'MLModel's, and
+-- marks the boundary between a positive prediction and a negative
+-- prediction.
 --
-gmlmrTrainingParameters :: Lens' GetMLModelResponse (HashMap Text Text)
-gmlmrTrainingParameters =
-    lens _gmlmrTrainingParameters (\s a -> s { _gmlmrTrainingParameters = a })
-        . _Map
+-- Output values greater than or equal to the threshold receive a positive
+-- result from the MLModel, such as 'true'. Output values less than the
+-- threshold receive a negative response from the MLModel, such as 'false'.
+gmlmrsScoreThreshold :: Lens' GetMLModelResponse (Maybe Double)
+gmlmrsScoreThreshold = lens _gmlmrsScoreThreshold (\ s a -> s{_gmlmrsScoreThreshold = a});
 
-instance ToPath GetMLModel where
-    toPath = const "/"
+-- | A user-supplied name or description of the 'MLModel'.
+gmlmrsName :: Lens' GetMLModelResponse (Maybe Text)
+gmlmrsName = lens _gmlmrsName (\ s a -> s{_gmlmrsName = a});
 
-instance ToQuery GetMLModel where
-    toQuery = const mempty
+-- | The AWS user account from which the 'MLModel' was created. The account
+-- type can be either an AWS root account or an AWS Identity and Access
+-- Management (IAM) user account.
+gmlmrsCreatedByIAMUser :: Lens' GetMLModelResponse (Maybe Text)
+gmlmrsCreatedByIAMUser = lens _gmlmrsCreatedByIAMUser (\ s a -> s{_gmlmrsCreatedByIAMUser = a});
 
-instance ToHeaders GetMLModel
+-- | A link to the file that contains logs of the 'CreateMLModel' operation.
+gmlmrsLogURI :: Lens' GetMLModelResponse (Maybe Text)
+gmlmrsLogURI = lens _gmlmrsLogURI (\ s a -> s{_gmlmrsLogURI = a});
 
-instance ToJSON GetMLModel where
-    toJSON GetMLModel{..} = object
-        [ "MLModelId" .= _gmlmMLModelId
-        , "Verbose"   .= _gmlmVerbose
-        ]
+-- | The current endpoint of the 'MLModel'
+gmlmrsEndpointInfo :: Lens' GetMLModelResponse (Maybe RealtimeEndpointInfo)
+gmlmrsEndpointInfo = lens _gmlmrsEndpointInfo (\ s a -> s{_gmlmrsEndpointInfo = a});
 
-instance AWSRequest GetMLModel where
-    type Sv GetMLModel = MachineLearning
-    type Rs GetMLModel = GetMLModelResponse
+-- | The ID of the training 'DataSource'.
+gmlmrsTrainingDataSourceId :: Lens' GetMLModelResponse (Maybe Text)
+gmlmrsTrainingDataSourceId = lens _gmlmrsTrainingDataSourceId (\ s a -> s{_gmlmrsTrainingDataSourceId = a});
 
-    request  = post "GetMLModel"
-    response = jsonResponse
+-- | Description of the most recent details about accessing the 'MLModel'.
+gmlmrsMessage :: Lens' GetMLModelResponse (Maybe Text)
+gmlmrsMessage = lens _gmlmrsMessage (\ s a -> s{_gmlmrsMessage = a});
 
-instance FromJSON GetMLModelResponse where
-    parseJSON = withObject "GetMLModelResponse" $ \o -> GetMLModelResponse
-        <$> o .:? "CreatedAt"
-        <*> o .:? "CreatedByIamUser"
-        <*> o .:? "EndpointInfo"
-        <*> o .:? "InputDataLocationS3"
-        <*> o .:? "LastUpdatedAt"
-        <*> o .:? "LogUri"
-        <*> o .:? "MLModelId"
-        <*> o .:? "MLModelType"
-        <*> o .:? "Message"
-        <*> o .:? "Name"
-        <*> o .:? "Recipe"
-        <*> o .:? "Schema"
-        <*> o .:? "ScoreThreshold"
-        <*> o .:? "ScoreThresholdLastUpdatedAt"
-        <*> o .:? "SizeInBytes"
-        <*> o .:? "Status"
-        <*> o .:? "TrainingDataSourceId"
-        <*> o .:? "TrainingParameters" .!= mempty
+-- | Identifies the 'MLModel' category. The following are the available
+-- types:
+--
+-- -   REGRESSION -- Produces a numeric result. For example, \"What listing
+--     price should a house have?\"
+-- -   BINARY -- Produces one of two possible results. For example, \"Is
+--     this an e-commerce website?\"
+-- -   MULTICLASS -- Produces more than two possible results. For example,
+--     \"Is this a HIGH, LOW or MEDIUM risk trade?\"
+gmlmrsMLModelType :: Lens' GetMLModelResponse (Maybe MLModelType)
+gmlmrsMLModelType = lens _gmlmrsMLModelType (\ s a -> s{_gmlmrsMLModelType = a});
+
+-- | The response status code.
+gmlmrsStatus :: Lens' GetMLModelResponse Int
+gmlmrsStatus = lens _gmlmrsStatus (\ s a -> s{_gmlmrsStatus = a});
diff --git a/gen/Network/AWS/MachineLearning/Predict.hs b/gen/Network/AWS/MachineLearning/Predict.hs
--- a/gen/Network/AWS/MachineLearning/Predict.hs
+++ b/gen/Network/AWS/MachineLearning/Predict.hs
@@ -1,134 +1,152 @@
-{-# 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.MachineLearning.Predict
--- 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.
-
--- | Generates a prediction for the observation using the specified 'MLModel'.
+-- Generates a prediction for the observation using the specified
+-- 'MLModel'.
 --
--- Note Not all response parameters will be populated because this is dependent
--- on the type of requested model.
+-- Note
 --
+-- Not all response parameters will be populated because this is dependent
+-- on the type of requested model.
 --
--- <http://http://docs.aws.amazon.com/machine-learning/latest/APIReference/API_Predict.html>
+-- /See:/ <http://http://docs.aws.amazon.com/machine-learning/latest/APIReference/API_Predict.html AWS API Reference> for Predict.
 module Network.AWS.MachineLearning.Predict
     (
-    -- * Request
-      Predict
-    -- ** Request constructor
-    , predict
-    -- ** Request lenses
+    -- * Creating a Request
+      predict
+    , Predict
+    -- * Request Lenses
     , pMLModelId
-    , pPredictEndpoint
     , pRecord
+    , pPredictEndpoint
 
-    -- * Response
-    , PredictResponse
-    -- ** Response constructor
+    -- * Destructuring the Response
     , predictResponse
-    -- ** Response lenses
-    , prPrediction
+    , PredictResponse
+    -- * Response Lenses
+    , prsPrediction
+    , prsStatus
     ) where
 
-import Network.AWS.Data (Object)
-import Network.AWS.Prelude
-import Network.AWS.Request.JSON
-import Network.AWS.MachineLearning.Types
-import qualified GHC.Exts
+import           Network.AWS.MachineLearning.Types
+import           Network.AWS.MachineLearning.Types.Product
+import           Network.AWS.Prelude
+import           Network.AWS.Request
+import           Network.AWS.Response
 
-data Predict = Predict
-    { _pMLModelId       :: Text
-    , _pPredictEndpoint :: Text
-    , _pRecord          :: Map Text Text
-    } deriving (Eq, Read, Show)
+-- | /See:/ 'predict' smart constructor.
+data Predict = Predict'
+    { _pMLModelId       :: !Text
+    , _pRecord          :: !(Map Text Text)
+    , _pPredictEndpoint :: !Text
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
 
--- | 'Predict' constructor.
---
--- The fields accessible through corresponding lenses are:
+-- | Creates a value of 'Predict' with the minimum fields required to make a request.
 --
--- * 'pMLModelId' @::@ 'Text'
+-- Use one of the following lenses to modify other fields as desired:
 --
--- * 'pPredictEndpoint' @::@ 'Text'
+-- * 'pMLModelId'
 --
--- * 'pRecord' @::@ 'HashMap' 'Text' 'Text'
+-- * 'pRecord'
 --
-predict :: Text -- ^ 'pMLModelId'
-        -> Text -- ^ 'pPredictEndpoint'
-        -> Predict
-predict p1 p2 = Predict
-    { _pMLModelId       = p1
-    , _pPredictEndpoint = p2
-    , _pRecord          = mempty
+-- * 'pPredictEndpoint'
+predict
+    :: Text -- ^ 'pMLModelId'
+    -> Text -- ^ 'pPredictEndpoint'
+    -> Predict
+predict pMLModelId_ pPredictEndpoint_ =
+    Predict'
+    { _pMLModelId = pMLModelId_
+    , _pRecord = mempty
+    , _pPredictEndpoint = pPredictEndpoint_
     }
 
 -- | A unique identifier of the 'MLModel'.
 pMLModelId :: Lens' Predict Text
-pMLModelId = lens _pMLModelId (\s a -> s { _pMLModelId = a })
-
-pPredictEndpoint :: Lens' Predict Text
-pPredictEndpoint = lens _pPredictEndpoint (\s a -> s { _pPredictEndpoint = a })
+pMLModelId = lens _pMLModelId (\ s a -> s{_pMLModelId = a});
 
+-- | Undocumented member.
 pRecord :: Lens' Predict (HashMap Text Text)
-pRecord = lens _pRecord (\s a -> s { _pRecord = a }) . _Map
+pRecord = lens _pRecord (\ s a -> s{_pRecord = a}) . _Map;
 
-newtype PredictResponse = PredictResponse
-    { _prPrediction :: Maybe Prediction
-    } deriving (Eq, Read, Show)
+-- | Undocumented member.
+pPredictEndpoint :: Lens' Predict Text
+pPredictEndpoint = lens _pPredictEndpoint (\ s a -> s{_pPredictEndpoint = a});
 
--- | 'PredictResponse' constructor.
---
--- The fields accessible through corresponding lenses are:
---
--- * 'prPrediction' @::@ 'Maybe' 'Prediction'
---
-predictResponse :: PredictResponse
-predictResponse = PredictResponse
-    { _prPrediction = Nothing
-    }
+instance AWSRequest Predict where
+        type Sv Predict = MachineLearning
+        type Rs Predict = PredictResponse
+        request = postJSON
+        response
+          = receiveJSON
+              (\ s h x ->
+                 PredictResponse' <$>
+                   (x .?> "Prediction") <*> (pure (fromEnum s)))
 
-prPrediction :: Lens' PredictResponse (Maybe Prediction)
-prPrediction = lens _prPrediction (\s a -> s { _prPrediction = a })
+instance ToHeaders Predict where
+        toHeaders
+          = const
+              (mconcat
+                 ["X-Amz-Target" =#
+                    ("AmazonML_20141212.Predict" :: ByteString),
+                  "Content-Type" =#
+                    ("application/x-amz-json-1.1" :: ByteString)])
 
+instance ToJSON Predict where
+        toJSON Predict'{..}
+          = object
+              ["MLModelId" .= _pMLModelId, "Record" .= _pRecord,
+               "PredictEndpoint" .= _pPredictEndpoint]
+
 instance ToPath Predict where
-    toPath = const "/"
+        toPath = const "/"
 
 instance ToQuery Predict where
-    toQuery = const mempty
-
-instance ToHeaders Predict
+        toQuery = const mempty
 
-instance ToJSON Predict where
-    toJSON Predict{..} = object
-        [ "MLModelId"       .= _pMLModelId
-        , "Record"          .= _pRecord
-        , "PredictEndpoint" .= _pPredictEndpoint
-        ]
+-- | /See:/ 'predictResponse' smart constructor.
+data PredictResponse = PredictResponse'
+    { _prsPrediction :: !(Maybe Prediction)
+    , _prsStatus     :: !Int
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
 
-instance AWSRequest Predict where
-    type Sv Predict = MachineLearning
-    type Rs Predict = PredictResponse
+-- | Creates a value of 'PredictResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'prsPrediction'
+--
+-- * 'prsStatus'
+predictResponse
+    :: Int -- ^ 'prsStatus'
+    -> PredictResponse
+predictResponse pStatus_ =
+    PredictResponse'
+    { _prsPrediction = Nothing
+    , _prsStatus = pStatus_
+    }
 
-    request  = post "Predict"
-    response = jsonResponse
+-- | Undocumented member.
+prsPrediction :: Lens' PredictResponse (Maybe Prediction)
+prsPrediction = lens _prsPrediction (\ s a -> s{_prsPrediction = a});
 
-instance FromJSON PredictResponse where
-    parseJSON = withObject "PredictResponse" $ \o -> PredictResponse
-        <$> o .:? "Prediction"
+-- | The response status code.
+prsStatus :: Lens' PredictResponse Int
+prsStatus = lens _prsStatus (\ s a -> s{_prsStatus = a});
diff --git a/gen/Network/AWS/MachineLearning/Types.hs b/gen/Network/AWS/MachineLearning/Types.hs
--- a/gen/Network/AWS/MachineLearning/Types.hs
+++ b/gen/Network/AWS/MachineLearning/Types.hs
@@ -1,2148 +1,296 @@
-{-# 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.MachineLearning.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.MachineLearning.Types
-    (
-    -- * Service
-      MachineLearning
-    -- ** Error
-    , JSONError
-
-    -- * BatchPredictionFilterVariable
-    , BatchPredictionFilterVariable (..)
-
-    -- * PerformanceMetrics
-    , PerformanceMetrics
-    , performanceMetrics
-    , pmProperties
-
-    -- * RealtimeEndpointInfo
-    , RealtimeEndpointInfo
-    , realtimeEndpointInfo
-    , reiCreatedAt
-    , reiEndpointStatus
-    , reiEndpointUrl
-    , reiPeakRequestsPerSecond
-
-    -- * Prediction
-    , Prediction
-    , prediction
-    , pDetails
-    , pPredictedLabel
-    , pPredictedScores
-    , pPredictedValue
-
-    -- * S3DataSpec
-    , S3DataSpec
-    , s3DataSpec
-    , sdsDataLocationS3
-    , sdsDataRearrangement
-    , sdsDataSchema
-    , sdsDataSchemaLocationS3
-
-    -- * DetailsAttributes
-    , DetailsAttributes (..)
-
-    -- * EvaluationFilterVariable
-    , EvaluationFilterVariable (..)
-
-    -- * RealtimeEndpointStatus
-    , RealtimeEndpointStatus (..)
-
-    -- * RDSDataSpec
-    , RDSDataSpec
-    , rdsdataSpec
-    , rdsdsDataRearrangement
-    , rdsdsDataSchema
-    , rdsdsDataSchemaUri
-    , rdsdsDatabaseCredentials
-    , rdsdsDatabaseInformation
-    , rdsdsResourceRole
-    , rdsdsS3StagingLocation
-    , rdsdsSecurityGroupIds
-    , rdsdsSelectSqlQuery
-    , rdsdsServiceRole
-    , rdsdsSubnetId
-
-    -- * RDSMetadata
-    , RDSMetadata
-    , rdsmetadata
-    , rdsmDataPipelineId
-    , rdsmDatabase
-    , rdsmDatabaseUserName
-    , rdsmResourceRole
-    , rdsmSelectSqlQuery
-    , rdsmServiceRole
-
-    -- * RedshiftDatabase
-    , RedshiftDatabase
-    , redshiftDatabase
-    , rdClusterIdentifier
-    , rdDatabaseName
-
-    -- * RedshiftDatabaseCredentials
-    , RedshiftDatabaseCredentials
-    , redshiftDatabaseCredentials
-    , rdcPassword
-    , rdcUsername
-
-    -- * MLModel
-    , MLModel
-    , mlmodel
-    , mlmAlgorithm
-    , mlmCreatedAt
-    , mlmCreatedByIamUser
-    , mlmEndpointInfo
-    , mlmInputDataLocationS3
-    , mlmLastUpdatedAt
-    , mlmMLModelId
-    , mlmMLModelType
-    , mlmMessage
-    , mlmName
-    , mlmScoreThreshold
-    , mlmScoreThresholdLastUpdatedAt
-    , mlmSizeInBytes
-    , mlmStatus
-    , mlmTrainingDataSourceId
-    , mlmTrainingParameters
-
-    -- * BatchPrediction
-    , BatchPrediction
-    , batchPrediction
-    , bpBatchPredictionDataSourceId
-    , bpBatchPredictionId
-    , bpCreatedAt
-    , bpCreatedByIamUser
-    , bpInputDataLocationS3
-    , bpLastUpdatedAt
-    , bpMLModelId
-    , bpMessage
-    , bpName
-    , bpOutputUri
-    , bpStatus
-
-    -- * SortOrder
-    , SortOrder (..)
-
-    -- * Algorithm
-    , Algorithm (..)
-
-    -- * EntityStatus
-    , EntityStatus (..)
-
-    -- * DataSource
-    , DataSource
-    , dataSource
-    , dsComputeStatistics
-    , dsCreatedAt
-    , dsCreatedByIamUser
-    , dsDataLocationS3
-    , dsDataRearrangement
-    , dsDataSizeInBytes
-    , dsDataSourceId
-    , dsLastUpdatedAt
-    , dsMessage
-    , dsName
-    , dsNumberOfFiles
-    , dsRDSMetadata
-    , dsRedshiftMetadata
-    , dsRoleARN
-    , dsStatus
-
-    -- * RDSDatabase
-    , RDSDatabase
-    , rdsdatabase
-    , rdsdDatabaseName
-    , rdsdInstanceIdentifier
-
-    -- * RDSDatabaseCredentials
-    , RDSDatabaseCredentials
-    , rdsdatabaseCredentials
-    , rdsdcPassword
-    , rdsdcUsername
-
-    -- * MLModelFilterVariable
-    , MLModelFilterVariable (..)
-
-    -- * DataSourceFilterVariable
-    , DataSourceFilterVariable (..)
-
-    -- * RedshiftDataSpec
-    , RedshiftDataSpec
-    , redshiftDataSpec
-    , rdsDataRearrangement
-    , rdsDataSchema
-    , rdsDataSchemaUri
-    , rdsDatabaseCredentials
-    , rdsDatabaseInformation
-    , rdsS3StagingLocation
-    , rdsSelectSqlQuery
-
-    -- * Evaluation
-    , Evaluation
-    , evaluation
-    , eCreatedAt
-    , eCreatedByIamUser
-    , eEvaluationDataSourceId
-    , eEvaluationId
-    , eInputDataLocationS3
-    , eLastUpdatedAt
-    , eMLModelId
-    , eMessage
-    , eName
-    , ePerformanceMetrics
-    , eStatus
-
-    -- * RedshiftMetadata
-    , RedshiftMetadata
-    , redshiftMetadata
-    , rmDatabaseUserName
-    , rmRedshiftDatabase
-    , rmSelectSqlQuery
-
-    -- * MLModelType
-    , MLModelType (..)
-    ) where
-
-import Network.AWS.Prelude
-import Network.AWS.Signing
-import qualified GHC.Exts
-
--- | Version @2014-12-12@ of the Amazon Machine Learning service.
-data MachineLearning
-
-instance AWSService MachineLearning where
-    type Sg MachineLearning = V4
-    type Er MachineLearning = JSONError
-
-    service = service'
-      where
-        service' :: Service MachineLearning
-        service' = Service
-            { _svcAbbrev       = "MachineLearning"
-            , _svcPrefix       = "machinelearning"
-            , _svcVersion      = "2014-12-12"
-            , _svcTargetPrefix = Just "AmazonML_20141212"
-            , _svcJSONVersion  = Just "1.1"
-            , _svcHandle       = handle
-            , _svcRetry        = retry
-            }
-
-        handle :: Status
-               -> Maybe (LazyByteString -> ServiceError JSONError)
-        handle = jsonError statusSuccess service'
-
-        retry :: Retry MachineLearning
-        retry = Exponential
-            { _retryBase     = 0.05
-            , _retryGrowth   = 2
-            , _retryAttempts = 5
-            , _retryCheck    = check
-            }
-
-        check :: Status
-              -> JSONError
-              -> Bool
-        check (statusCode -> s) (awsErrorCode -> e)
-            | s == 500  = True -- General Server Error
-            | s == 509  = True -- Limit Exceeded
-            | s == 503  = True -- Service Unavailable
-            | otherwise = False
-
-data BatchPredictionFilterVariable
-    = BatchCreatedAt     -- ^ CreatedAt
-    | BatchDataSourceId  -- ^ DataSourceId
-    | BatchDataURI       -- ^ DataURI
-    | BatchIAMUser       -- ^ IAMUser
-    | BatchLastUpdatedAt -- ^ LastUpdatedAt
-    | BatchMLModelId     -- ^ MLModelId
-    | BatchName          -- ^ Name
-    | BatchStatus        -- ^ Status
-      deriving (Eq, Ord, Read, Show, Generic, Enum)
-
-instance Hashable BatchPredictionFilterVariable
-
-instance FromText BatchPredictionFilterVariable where
-    parser = takeLowerText >>= \case
-        "createdat"     -> pure BatchCreatedAt
-        "datasourceid"  -> pure BatchDataSourceId
-        "datauri"       -> pure BatchDataURI
-        "iamuser"       -> pure BatchIAMUser
-        "lastupdatedat" -> pure BatchLastUpdatedAt
-        "mlmodelid"     -> pure BatchMLModelId
-        "name"          -> pure BatchName
-        "status"        -> pure BatchStatus
-        e               -> fail $
-            "Failure parsing BatchPredictionFilterVariable from " ++ show e
-
-instance ToText BatchPredictionFilterVariable where
-    toText = \case
-        BatchCreatedAt     -> "CreatedAt"
-        BatchDataSourceId  -> "DataSourceId"
-        BatchDataURI       -> "DataURI"
-        BatchIAMUser       -> "IAMUser"
-        BatchLastUpdatedAt -> "LastUpdatedAt"
-        BatchMLModelId     -> "MLModelId"
-        BatchName          -> "Name"
-        BatchStatus        -> "Status"
-
-instance ToByteString BatchPredictionFilterVariable
-instance ToHeader     BatchPredictionFilterVariable
-instance ToQuery      BatchPredictionFilterVariable
-
-instance FromJSON BatchPredictionFilterVariable where
-    parseJSON = parseJSONText "BatchPredictionFilterVariable"
-
-instance ToJSON BatchPredictionFilterVariable where
-    toJSON = toJSONText
-
-newtype PerformanceMetrics = PerformanceMetrics
-    { _pmProperties :: Map Text Text
-    } deriving (Eq, Read, Show, Monoid, Semigroup)
-
--- | 'PerformanceMetrics' constructor.
---
--- The fields accessible through corresponding lenses are:
---
--- * 'pmProperties' @::@ 'HashMap' 'Text' 'Text'
---
-performanceMetrics :: PerformanceMetrics
-performanceMetrics = PerformanceMetrics
-    { _pmProperties = mempty
-    }
-
-pmProperties :: Lens' PerformanceMetrics (HashMap Text Text)
-pmProperties = lens _pmProperties (\s a -> s { _pmProperties = a }) . _Map
-
-instance FromJSON PerformanceMetrics where
-    parseJSON = withObject "PerformanceMetrics" $ \o -> PerformanceMetrics
-        <$> o .:? "Properties" .!= mempty
-
-instance ToJSON PerformanceMetrics where
-    toJSON PerformanceMetrics{..} = object
-        [ "Properties" .= _pmProperties
-        ]
-
-data RealtimeEndpointInfo = RealtimeEndpointInfo
-    { _reiCreatedAt             :: Maybe POSIX
-    , _reiEndpointStatus        :: Maybe RealtimeEndpointStatus
-    , _reiEndpointUrl           :: Maybe Text
-    , _reiPeakRequestsPerSecond :: Maybe Int
-    } deriving (Eq, Read, Show)
-
--- | 'RealtimeEndpointInfo' constructor.
---
--- The fields accessible through corresponding lenses are:
---
--- * 'reiCreatedAt' @::@ 'Maybe' 'UTCTime'
---
--- * 'reiEndpointStatus' @::@ 'Maybe' 'RealtimeEndpointStatus'
---
--- * 'reiEndpointUrl' @::@ 'Maybe' 'Text'
---
--- * 'reiPeakRequestsPerSecond' @::@ 'Maybe' 'Int'
---
-realtimeEndpointInfo :: RealtimeEndpointInfo
-realtimeEndpointInfo = RealtimeEndpointInfo
-    { _reiPeakRequestsPerSecond = Nothing
-    , _reiCreatedAt             = Nothing
-    , _reiEndpointUrl           = Nothing
-    , _reiEndpointStatus        = Nothing
-    }
-
--- | The time that the request to create the real-time endpoint for the 'MLModel'
--- was received. The time is expressed in epoch time.
-reiCreatedAt :: Lens' RealtimeEndpointInfo (Maybe UTCTime)
-reiCreatedAt = lens _reiCreatedAt (\s a -> s { _reiCreatedAt = a }) . mapping _Time
-
--- | The current status of the real-time endpoint for the 'MLModel'. This element
--- can have one of the following values:
---
--- NONE - Endpoint does not exist or was previously deleted. READY - Endpoint
--- is ready to be used for real-time predictions. UPDATING - Updating/creating
--- the endpoint.
-reiEndpointStatus :: Lens' RealtimeEndpointInfo (Maybe RealtimeEndpointStatus)
-reiEndpointStatus =
-    lens _reiEndpointStatus (\s a -> s { _reiEndpointStatus = a })
-
--- | The URI that specifies where to send real-time prediction requests for the 'MLModel'.
---
--- Note The application must wait until the real-time endpoint is ready before
--- using this URI.
---
---
-reiEndpointUrl :: Lens' RealtimeEndpointInfo (Maybe Text)
-reiEndpointUrl = lens _reiEndpointUrl (\s a -> s { _reiEndpointUrl = a })
-
--- | The maximum processing rate for the real-time endpoint for 'MLModel', measured
--- in incoming requests per second.
-reiPeakRequestsPerSecond :: Lens' RealtimeEndpointInfo (Maybe Int)
-reiPeakRequestsPerSecond =
-    lens _reiPeakRequestsPerSecond
-        (\s a -> s { _reiPeakRequestsPerSecond = a })
-
-instance FromJSON RealtimeEndpointInfo where
-    parseJSON = withObject "RealtimeEndpointInfo" $ \o -> RealtimeEndpointInfo
-        <$> o .:? "CreatedAt"
-        <*> o .:? "EndpointStatus"
-        <*> o .:? "EndpointUrl"
-        <*> o .:? "PeakRequestsPerSecond"
-
-instance ToJSON RealtimeEndpointInfo where
-    toJSON RealtimeEndpointInfo{..} = object
-        [ "PeakRequestsPerSecond" .= _reiPeakRequestsPerSecond
-        , "CreatedAt"             .= _reiCreatedAt
-        , "EndpointUrl"           .= _reiEndpointUrl
-        , "EndpointStatus"        .= _reiEndpointStatus
-        ]
-
-data Prediction = Prediction
-    { _pDetails         :: Map DetailsAttributes Text
-    , _pPredictedLabel  :: Maybe Text
-    , _pPredictedScores :: Map Text Double
-    , _pPredictedValue  :: Maybe Double
-    } deriving (Eq, Read, Show)
-
--- | 'Prediction' constructor.
---
--- The fields accessible through corresponding lenses are:
---
--- * 'pDetails' @::@ 'HashMap' 'DetailsAttributes' 'Text'
---
--- * 'pPredictedLabel' @::@ 'Maybe' 'Text'
---
--- * 'pPredictedScores' @::@ 'HashMap' 'Text' 'Double'
---
--- * 'pPredictedValue' @::@ 'Maybe' 'Double'
---
-prediction :: Prediction
-prediction = Prediction
-    { _pPredictedLabel  = Nothing
-    , _pPredictedValue  = Nothing
-    , _pPredictedScores = mempty
-    , _pDetails         = mempty
-    }
-
-pDetails :: Lens' Prediction (HashMap DetailsAttributes Text)
-pDetails = lens _pDetails (\s a -> s { _pDetails = a }) . _Map
-
--- | The prediction label for either a BINARY or MULTICLASS 'MLModel'.
-pPredictedLabel :: Lens' Prediction (Maybe Text)
-pPredictedLabel = lens _pPredictedLabel (\s a -> s { _pPredictedLabel = a })
-
-pPredictedScores :: Lens' Prediction (HashMap Text Double)
-pPredictedScores = lens _pPredictedScores (\s a -> s { _pPredictedScores = a }) . _Map
-
--- | The prediction value for REGRESSION 'MLModel'.
-pPredictedValue :: Lens' Prediction (Maybe Double)
-pPredictedValue = lens _pPredictedValue (\s a -> s { _pPredictedValue = a })
-
-instance FromJSON Prediction where
-    parseJSON = withObject "Prediction" $ \o -> Prediction
-        <$> o .:? "details" .!= mempty
-        <*> o .:? "predictedLabel"
-        <*> o .:? "predictedScores" .!= mempty
-        <*> o .:? "predictedValue"
-
-instance ToJSON Prediction where
-    toJSON Prediction{..} = object
-        [ "predictedLabel"  .= _pPredictedLabel
-        , "predictedValue"  .= _pPredictedValue
-        , "predictedScores" .= _pPredictedScores
-        , "details"         .= _pDetails
-        ]
-
-data S3DataSpec = S3DataSpec
-    { _sdsDataLocationS3       :: Text
-    , _sdsDataRearrangement    :: Maybe Text
-    , _sdsDataSchema           :: Maybe Text
-    , _sdsDataSchemaLocationS3 :: Maybe Text
-    } deriving (Eq, Ord, Read, Show)
-
--- | 'S3DataSpec' constructor.
---
--- The fields accessible through corresponding lenses are:
---
--- * 'sdsDataLocationS3' @::@ 'Text'
---
--- * 'sdsDataRearrangement' @::@ 'Maybe' 'Text'
---
--- * 'sdsDataSchema' @::@ 'Maybe' 'Text'
---
--- * 'sdsDataSchemaLocationS3' @::@ 'Maybe' 'Text'
---
-s3DataSpec :: Text -- ^ 'sdsDataLocationS3'
-           -> S3DataSpec
-s3DataSpec p1 = S3DataSpec
-    { _sdsDataLocationS3       = p1
-    , _sdsDataRearrangement    = Nothing
-    , _sdsDataSchema           = Nothing
-    , _sdsDataSchemaLocationS3 = Nothing
-    }
-
--- | The location of the data file(s) used by a 'DataSource'. The URI specifies a
--- data file or an Amazon Simple Storage Service (Amazon S3) directory or bucket
--- containing data files.
-sdsDataLocationS3 :: Lens' S3DataSpec Text
-sdsDataLocationS3 =
-    lens _sdsDataLocationS3 (\s a -> s { _sdsDataLocationS3 = a })
-
--- | Describes the splitting requirement of a 'Datasource'.
-sdsDataRearrangement :: Lens' S3DataSpec (Maybe Text)
-sdsDataRearrangement =
-    lens _sdsDataRearrangement (\s a -> s { _sdsDataRearrangement = a })
-
--- | Describes the schema for an Amazon S3 'DataSource'.
-sdsDataSchema :: Lens' S3DataSpec (Maybe Text)
-sdsDataSchema = lens _sdsDataSchema (\s a -> s { _sdsDataSchema = a })
-
--- | Describes the schema Location in Amazon S3.
-sdsDataSchemaLocationS3 :: Lens' S3DataSpec (Maybe Text)
-sdsDataSchemaLocationS3 =
-    lens _sdsDataSchemaLocationS3 (\s a -> s { _sdsDataSchemaLocationS3 = a })
-
-instance FromJSON S3DataSpec where
-    parseJSON = withObject "S3DataSpec" $ \o -> S3DataSpec
-        <$> o .:  "DataLocationS3"
-        <*> o .:? "DataRearrangement"
-        <*> o .:? "DataSchema"
-        <*> o .:? "DataSchemaLocationS3"
-
-instance ToJSON S3DataSpec where
-    toJSON S3DataSpec{..} = object
-        [ "DataLocationS3"       .= _sdsDataLocationS3
-        , "DataRearrangement"    .= _sdsDataRearrangement
-        , "DataSchema"           .= _sdsDataSchema
-        , "DataSchemaLocationS3" .= _sdsDataSchemaLocationS3
-        ]
-
-data DetailsAttributes
-    = DAAlgorithm           -- ^ Algorithm
-    | DAPredictiveModelType -- ^ PredictiveModelType
-      deriving (Eq, Ord, Read, Show, Generic, Enum)
-
-instance Hashable DetailsAttributes
-
-instance FromText DetailsAttributes where
-    parser = takeLowerText >>= \case
-        "algorithm"           -> pure DAAlgorithm
-        "predictivemodeltype" -> pure DAPredictiveModelType
-        e                     -> fail $
-            "Failure parsing DetailsAttributes from " ++ show e
-
-instance ToText DetailsAttributes where
-    toText = \case
-        DAAlgorithm           -> "Algorithm"
-        DAPredictiveModelType -> "PredictiveModelType"
-
-instance ToByteString DetailsAttributes
-instance ToHeader     DetailsAttributes
-instance ToQuery      DetailsAttributes
-
-instance FromJSON DetailsAttributes where
-    parseJSON = parseJSONText "DetailsAttributes"
-
-instance ToJSON DetailsAttributes where
-    toJSON = toJSONText
-
-data EvaluationFilterVariable
-    = EvalCreatedAt     -- ^ CreatedAt
-    | EvalDataSourceId  -- ^ DataSourceId
-    | EvalDataURI       -- ^ DataURI
-    | EvalIAMUser       -- ^ IAMUser
-    | EvalLastUpdatedAt -- ^ LastUpdatedAt
-    | EvalMLModelId     -- ^ MLModelId
-    | EvalName          -- ^ Name
-    | EvalStatus        -- ^ Status
-      deriving (Eq, Ord, Read, Show, Generic, Enum)
-
-instance Hashable EvaluationFilterVariable
-
-instance FromText EvaluationFilterVariable where
-    parser = takeLowerText >>= \case
-        "createdat"     -> pure EvalCreatedAt
-        "datasourceid"  -> pure EvalDataSourceId
-        "datauri"       -> pure EvalDataURI
-        "iamuser"       -> pure EvalIAMUser
-        "lastupdatedat" -> pure EvalLastUpdatedAt
-        "mlmodelid"     -> pure EvalMLModelId
-        "name"          -> pure EvalName
-        "status"        -> pure EvalStatus
-        e               -> fail $
-            "Failure parsing EvaluationFilterVariable from " ++ show e
-
-instance ToText EvaluationFilterVariable where
-    toText = \case
-        EvalCreatedAt     -> "CreatedAt"
-        EvalDataSourceId  -> "DataSourceId"
-        EvalDataURI       -> "DataURI"
-        EvalIAMUser       -> "IAMUser"
-        EvalLastUpdatedAt -> "LastUpdatedAt"
-        EvalMLModelId     -> "MLModelId"
-        EvalName          -> "Name"
-        EvalStatus        -> "Status"
-
-instance ToByteString EvaluationFilterVariable
-instance ToHeader     EvaluationFilterVariable
-instance ToQuery      EvaluationFilterVariable
-
-instance FromJSON EvaluationFilterVariable where
-    parseJSON = parseJSONText "EvaluationFilterVariable"
-
-instance ToJSON EvaluationFilterVariable where
-    toJSON = toJSONText
-
-data RealtimeEndpointStatus
-    = Failed   -- ^ FAILED
-    | None     -- ^ NONE
-    | Ready    -- ^ READY
-    | Updating -- ^ UPDATING
-      deriving (Eq, Ord, Read, Show, Generic, Enum)
-
-instance Hashable RealtimeEndpointStatus
-
-instance FromText RealtimeEndpointStatus where
-    parser = takeLowerText >>= \case
-        "failed"   -> pure Failed
-        "none"     -> pure None
-        "ready"    -> pure Ready
-        "updating" -> pure Updating
-        e          -> fail $
-            "Failure parsing RealtimeEndpointStatus from " ++ show e
-
-instance ToText RealtimeEndpointStatus where
-    toText = \case
-        Failed   -> "FAILED"
-        None     -> "NONE"
-        Ready    -> "READY"
-        Updating -> "UPDATING"
-
-instance ToByteString RealtimeEndpointStatus
-instance ToHeader     RealtimeEndpointStatus
-instance ToQuery      RealtimeEndpointStatus
-
-instance FromJSON RealtimeEndpointStatus where
-    parseJSON = parseJSONText "RealtimeEndpointStatus"
-
-instance ToJSON RealtimeEndpointStatus where
-    toJSON = toJSONText
-
-data RDSDataSpec = RDSDataSpec
-    { _rdsdsDataRearrangement   :: Maybe Text
-    , _rdsdsDataSchema          :: Maybe Text
-    , _rdsdsDataSchemaUri       :: Maybe Text
-    , _rdsdsDatabaseCredentials :: RDSDatabaseCredentials
-    , _rdsdsDatabaseInformation :: RDSDatabase
-    , _rdsdsResourceRole        :: Text
-    , _rdsdsS3StagingLocation   :: Text
-    , _rdsdsSecurityGroupIds    :: List "SecurityGroupIds" Text
-    , _rdsdsSelectSqlQuery      :: Text
-    , _rdsdsServiceRole         :: Text
-    , _rdsdsSubnetId            :: Text
-    } deriving (Eq, Read, Show)
-
--- | 'RDSDataSpec' constructor.
---
--- The fields accessible through corresponding lenses are:
---
--- * 'rdsdsDataRearrangement' @::@ 'Maybe' 'Text'
---
--- * 'rdsdsDataSchema' @::@ 'Maybe' 'Text'
---
--- * 'rdsdsDataSchemaUri' @::@ 'Maybe' 'Text'
---
--- * 'rdsdsDatabaseCredentials' @::@ 'RDSDatabaseCredentials'
---
--- * 'rdsdsDatabaseInformation' @::@ 'RDSDatabase'
---
--- * 'rdsdsResourceRole' @::@ 'Text'
---
--- * 'rdsdsS3StagingLocation' @::@ 'Text'
---
--- * 'rdsdsSecurityGroupIds' @::@ ['Text']
---
--- * 'rdsdsSelectSqlQuery' @::@ 'Text'
---
--- * 'rdsdsServiceRole' @::@ 'Text'
---
--- * 'rdsdsSubnetId' @::@ 'Text'
---
-rdsdataSpec :: RDSDatabase -- ^ 'rdsdsDatabaseInformation'
-            -> Text -- ^ 'rdsdsSelectSqlQuery'
-            -> RDSDatabaseCredentials -- ^ 'rdsdsDatabaseCredentials'
-            -> Text -- ^ 'rdsdsS3StagingLocation'
-            -> Text -- ^ 'rdsdsResourceRole'
-            -> Text -- ^ 'rdsdsServiceRole'
-            -> Text -- ^ 'rdsdsSubnetId'
-            -> RDSDataSpec
-rdsdataSpec p1 p2 p3 p4 p5 p6 p7 = RDSDataSpec
-    { _rdsdsDatabaseInformation = p1
-    , _rdsdsSelectSqlQuery      = p2
-    , _rdsdsDatabaseCredentials = p3
-    , _rdsdsS3StagingLocation   = p4
-    , _rdsdsResourceRole        = p5
-    , _rdsdsServiceRole         = p6
-    , _rdsdsSubnetId            = p7
-    , _rdsdsDataRearrangement   = Nothing
-    , _rdsdsDataSchema          = Nothing
-    , _rdsdsDataSchemaUri       = Nothing
-    , _rdsdsSecurityGroupIds    = mempty
-    }
-
--- | DataRearrangement - A JSON string that represents the splitting requirement
--- of a 'DataSource'.
---
---
--- Sample - ' "{\"randomSeed\":\"some-random-seed\",\"splitting\":{\"percentBegin\":10,\"percentEnd\":60}}"'
-rdsdsDataRearrangement :: Lens' RDSDataSpec (Maybe Text)
-rdsdsDataRearrangement =
-    lens _rdsdsDataRearrangement (\s a -> s { _rdsdsDataRearrangement = a })
-
--- | A JSON string that represents the schema. This is not required if 'DataSchemaUri' is specified.
-rdsdsDataSchema :: Lens' RDSDataSpec (Maybe Text)
-rdsdsDataSchema = lens _rdsdsDataSchema (\s a -> s { _rdsdsDataSchema = a })
-
--- | The Amazon S3 location of the 'DataSchema'.
-rdsdsDataSchemaUri :: Lens' RDSDataSpec (Maybe Text)
-rdsdsDataSchemaUri =
-    lens _rdsdsDataSchemaUri (\s a -> s { _rdsdsDataSchemaUri = a })
-
--- | The AWS Identity and Access Management (IAM) credentials that are used
--- connect to the Amazon RDS database.
-rdsdsDatabaseCredentials :: Lens' RDSDataSpec RDSDatabaseCredentials
-rdsdsDatabaseCredentials =
-    lens _rdsdsDatabaseCredentials
-        (\s a -> s { _rdsdsDatabaseCredentials = a })
-
--- | Describes the 'DatabaseName' and 'InstanceIdentifier' of an an Amazon RDS
--- database.
-rdsdsDatabaseInformation :: Lens' RDSDataSpec RDSDatabase
-rdsdsDatabaseInformation =
-    lens _rdsdsDatabaseInformation
-        (\s a -> s { _rdsdsDatabaseInformation = a })
-
--- | The role (DataPipelineDefaultResourceRole) assumed by an Amazon Elastic
--- Compute Cloud (Amazon EC2) instance to carry out the copy operation from
--- Amazon RDS to an Amazon S3 task. For more information, see <http://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-iam-roles.html Role templates> for
--- data pipelines.
-rdsdsResourceRole :: Lens' RDSDataSpec Text
-rdsdsResourceRole =
-    lens _rdsdsResourceRole (\s a -> s { _rdsdsResourceRole = a })
-
--- | The Amazon S3 location for staging Amazon RDS data. The data retrieved from
--- Amazon RDS using 'SelectSqlQuery' is stored in this location.
-rdsdsS3StagingLocation :: Lens' RDSDataSpec Text
-rdsdsS3StagingLocation =
-    lens _rdsdsS3StagingLocation (\s a -> s { _rdsdsS3StagingLocation = a })
-
--- | The security group IDs to be used to access a VPC-based RDS DB instance.
--- Ensure that there are appropriate ingress rules set up to allow access to the
--- RDS DB instance. This attribute is used by Data Pipeline to carry out the
--- copy operation from Amazon RDS to an Amazon S3 task.
-rdsdsSecurityGroupIds :: Lens' RDSDataSpec [Text]
-rdsdsSecurityGroupIds =
-    lens _rdsdsSecurityGroupIds (\s a -> s { _rdsdsSecurityGroupIds = a })
-        . _List
-
--- | The query that is used to retrieve the observation data for the 'DataSource'.
-rdsdsSelectSqlQuery :: Lens' RDSDataSpec Text
-rdsdsSelectSqlQuery =
-    lens _rdsdsSelectSqlQuery (\s a -> s { _rdsdsSelectSqlQuery = a })
-
--- | The role (DataPipelineDefaultRole) assumed by AWS Data Pipeline service to
--- monitor the progress of the copy task from Amazon RDS to Amazon S3. For more
--- information, see <http://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-iam-roles.html Role templates> for data pipelines.
-rdsdsServiceRole :: Lens' RDSDataSpec Text
-rdsdsServiceRole = lens _rdsdsServiceRole (\s a -> s { _rdsdsServiceRole = a })
-
--- | The subnet ID to be used to access a VPC-based RDS DB instance. This
--- attribute is used by Data Pipeline to carry out the copy task from Amazon RDS
--- to Amazon S3.
-rdsdsSubnetId :: Lens' RDSDataSpec Text
-rdsdsSubnetId = lens _rdsdsSubnetId (\s a -> s { _rdsdsSubnetId = a })
-
-instance FromJSON RDSDataSpec where
-    parseJSON = withObject "RDSDataSpec" $ \o -> RDSDataSpec
-        <$> o .:? "DataRearrangement"
-        <*> o .:? "DataSchema"
-        <*> o .:? "DataSchemaUri"
-        <*> o .:  "DatabaseCredentials"
-        <*> o .:  "DatabaseInformation"
-        <*> o .:  "ResourceRole"
-        <*> o .:  "S3StagingLocation"
-        <*> o .:? "SecurityGroupIds" .!= mempty
-        <*> o .:  "SelectSqlQuery"
-        <*> o .:  "ServiceRole"
-        <*> o .:  "SubnetId"
-
-instance ToJSON RDSDataSpec where
-    toJSON RDSDataSpec{..} = object
-        [ "DatabaseInformation" .= _rdsdsDatabaseInformation
-        , "SelectSqlQuery"      .= _rdsdsSelectSqlQuery
-        , "DatabaseCredentials" .= _rdsdsDatabaseCredentials
-        , "S3StagingLocation"   .= _rdsdsS3StagingLocation
-        , "DataRearrangement"   .= _rdsdsDataRearrangement
-        , "DataSchema"          .= _rdsdsDataSchema
-        , "DataSchemaUri"       .= _rdsdsDataSchemaUri
-        , "ResourceRole"        .= _rdsdsResourceRole
-        , "ServiceRole"         .= _rdsdsServiceRole
-        , "SubnetId"            .= _rdsdsSubnetId
-        , "SecurityGroupIds"    .= _rdsdsSecurityGroupIds
-        ]
-
-data RDSMetadata = RDSMetadata
-    { _rdsmDataPipelineId   :: Maybe Text
-    , _rdsmDatabase         :: Maybe RDSDatabase
-    , _rdsmDatabaseUserName :: Maybe Text
-    , _rdsmResourceRole     :: Maybe Text
-    , _rdsmSelectSqlQuery   :: Maybe Text
-    , _rdsmServiceRole      :: Maybe Text
-    } deriving (Eq, Read, Show)
-
--- | 'RDSMetadata' constructor.
---
--- The fields accessible through corresponding lenses are:
---
--- * 'rdsmDataPipelineId' @::@ 'Maybe' 'Text'
---
--- * 'rdsmDatabase' @::@ 'Maybe' 'RDSDatabase'
---
--- * 'rdsmDatabaseUserName' @::@ 'Maybe' 'Text'
---
--- * 'rdsmResourceRole' @::@ 'Maybe' 'Text'
---
--- * 'rdsmSelectSqlQuery' @::@ 'Maybe' 'Text'
---
--- * 'rdsmServiceRole' @::@ 'Maybe' 'Text'
---
-rdsmetadata :: RDSMetadata
-rdsmetadata = RDSMetadata
-    { _rdsmDatabase         = Nothing
-    , _rdsmDatabaseUserName = Nothing
-    , _rdsmSelectSqlQuery   = Nothing
-    , _rdsmResourceRole     = Nothing
-    , _rdsmServiceRole      = Nothing
-    , _rdsmDataPipelineId   = Nothing
-    }
-
--- | The ID of the Data Pipeline instance that is used to carry to copy data from
--- Amazon RDS to Amazon S3. You can use the ID to find details about the
--- instance in the Data Pipeline console.
-rdsmDataPipelineId :: Lens' RDSMetadata (Maybe Text)
-rdsmDataPipelineId =
-    lens _rdsmDataPipelineId (\s a -> s { _rdsmDataPipelineId = a })
-
--- | The database details required to connect to an Amazon RDS.
-rdsmDatabase :: Lens' RDSMetadata (Maybe RDSDatabase)
-rdsmDatabase = lens _rdsmDatabase (\s a -> s { _rdsmDatabase = a })
-
-rdsmDatabaseUserName :: Lens' RDSMetadata (Maybe Text)
-rdsmDatabaseUserName =
-    lens _rdsmDatabaseUserName (\s a -> s { _rdsmDatabaseUserName = a })
-
--- | The role (DataPipelineDefaultResourceRole) assumed by an Amazon EC2 instance
--- to carry out the copy task from Amazon RDS to Amazon S3. For more
--- information, see <http://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-iam-roles.html Role templates> for data pipelines.
-rdsmResourceRole :: Lens' RDSMetadata (Maybe Text)
-rdsmResourceRole = lens _rdsmResourceRole (\s a -> s { _rdsmResourceRole = a })
-
--- | The SQL query that is supplied during 'CreateDataSourceFromRDS'. Returns only
--- if 'Verbose' is true in 'GetDataSourceInput'.
-rdsmSelectSqlQuery :: Lens' RDSMetadata (Maybe Text)
-rdsmSelectSqlQuery =
-    lens _rdsmSelectSqlQuery (\s a -> s { _rdsmSelectSqlQuery = a })
-
--- | The role (DataPipelineDefaultRole) assumed by the Data Pipeline service to
--- monitor the progress of the copy task from Amazon RDS to Amazon S3. For more
--- information, see <http://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-iam-roles.html Role templates> for data pipelines.
-rdsmServiceRole :: Lens' RDSMetadata (Maybe Text)
-rdsmServiceRole = lens _rdsmServiceRole (\s a -> s { _rdsmServiceRole = a })
-
-instance FromJSON RDSMetadata where
-    parseJSON = withObject "RDSMetadata" $ \o -> RDSMetadata
-        <$> o .:? "DataPipelineId"
-        <*> o .:? "Database"
-        <*> o .:? "DatabaseUserName"
-        <*> o .:? "ResourceRole"
-        <*> o .:? "SelectSqlQuery"
-        <*> o .:? "ServiceRole"
-
-instance ToJSON RDSMetadata where
-    toJSON RDSMetadata{..} = object
-        [ "Database"         .= _rdsmDatabase
-        , "DatabaseUserName" .= _rdsmDatabaseUserName
-        , "SelectSqlQuery"   .= _rdsmSelectSqlQuery
-        , "ResourceRole"     .= _rdsmResourceRole
-        , "ServiceRole"      .= _rdsmServiceRole
-        , "DataPipelineId"   .= _rdsmDataPipelineId
-        ]
-
-data RedshiftDatabase = RedshiftDatabase
-    { _rdClusterIdentifier :: Text
-    , _rdDatabaseName      :: Text
-    } deriving (Eq, Ord, Read, Show)
-
--- | 'RedshiftDatabase' constructor.
---
--- The fields accessible through corresponding lenses are:
---
--- * 'rdClusterIdentifier' @::@ 'Text'
---
--- * 'rdDatabaseName' @::@ 'Text'
---
-redshiftDatabase :: Text -- ^ 'rdDatabaseName'
-                 -> Text -- ^ 'rdClusterIdentifier'
-                 -> RedshiftDatabase
-redshiftDatabase p1 p2 = RedshiftDatabase
-    { _rdDatabaseName      = p1
-    , _rdClusterIdentifier = p2
-    }
-
-rdClusterIdentifier :: Lens' RedshiftDatabase Text
-rdClusterIdentifier =
-    lens _rdClusterIdentifier (\s a -> s { _rdClusterIdentifier = a })
-
-rdDatabaseName :: Lens' RedshiftDatabase Text
-rdDatabaseName = lens _rdDatabaseName (\s a -> s { _rdDatabaseName = a })
-
-instance FromJSON RedshiftDatabase where
-    parseJSON = withObject "RedshiftDatabase" $ \o -> RedshiftDatabase
-        <$> o .:  "ClusterIdentifier"
-        <*> o .:  "DatabaseName"
-
-instance ToJSON RedshiftDatabase where
-    toJSON RedshiftDatabase{..} = object
-        [ "DatabaseName"      .= _rdDatabaseName
-        , "ClusterIdentifier" .= _rdClusterIdentifier
-        ]
-
-data RedshiftDatabaseCredentials = RedshiftDatabaseCredentials
-    { _rdcPassword :: Text
-    , _rdcUsername :: Text
-    } deriving (Eq, Ord, Read, Show)
-
--- | 'RedshiftDatabaseCredentials' constructor.
---
--- The fields accessible through corresponding lenses are:
---
--- * 'rdcPassword' @::@ 'Text'
---
--- * 'rdcUsername' @::@ 'Text'
---
-redshiftDatabaseCredentials :: Text -- ^ 'rdcUsername'
-                            -> Text -- ^ 'rdcPassword'
-                            -> RedshiftDatabaseCredentials
-redshiftDatabaseCredentials p1 p2 = RedshiftDatabaseCredentials
-    { _rdcUsername = p1
-    , _rdcPassword = p2
-    }
-
-rdcPassword :: Lens' RedshiftDatabaseCredentials Text
-rdcPassword = lens _rdcPassword (\s a -> s { _rdcPassword = a })
-
-rdcUsername :: Lens' RedshiftDatabaseCredentials Text
-rdcUsername = lens _rdcUsername (\s a -> s { _rdcUsername = a })
-
-instance FromJSON RedshiftDatabaseCredentials where
-    parseJSON = withObject "RedshiftDatabaseCredentials" $ \o -> RedshiftDatabaseCredentials
-        <$> o .:  "Password"
-        <*> o .:  "Username"
-
-instance ToJSON RedshiftDatabaseCredentials where
-    toJSON RedshiftDatabaseCredentials{..} = object
-        [ "Username" .= _rdcUsername
-        , "Password" .= _rdcPassword
-        ]
-
-data MLModel = MLModel
-    { _mlmAlgorithm                   :: Maybe Algorithm
-    , _mlmCreatedAt                   :: Maybe POSIX
-    , _mlmCreatedByIamUser            :: Maybe Text
-    , _mlmEndpointInfo                :: Maybe RealtimeEndpointInfo
-    , _mlmInputDataLocationS3         :: Maybe Text
-    , _mlmLastUpdatedAt               :: Maybe POSIX
-    , _mlmMLModelId                   :: Maybe Text
-    , _mlmMLModelType                 :: Maybe MLModelType
-    , _mlmMessage                     :: Maybe Text
-    , _mlmName                        :: Maybe Text
-    , _mlmScoreThreshold              :: Maybe Double
-    , _mlmScoreThresholdLastUpdatedAt :: Maybe POSIX
-    , _mlmSizeInBytes                 :: Maybe Integer
-    , _mlmStatus                      :: Maybe EntityStatus
-    , _mlmTrainingDataSourceId        :: Maybe Text
-    , _mlmTrainingParameters          :: Map Text Text
-    } deriving (Eq, Read, Show)
-
--- | 'MLModel' constructor.
---
--- The fields accessible through corresponding lenses are:
---
--- * 'mlmAlgorithm' @::@ 'Maybe' 'Algorithm'
---
--- * 'mlmCreatedAt' @::@ 'Maybe' 'UTCTime'
---
--- * 'mlmCreatedByIamUser' @::@ 'Maybe' 'Text'
---
--- * 'mlmEndpointInfo' @::@ 'Maybe' 'RealtimeEndpointInfo'
---
--- * 'mlmInputDataLocationS3' @::@ 'Maybe' 'Text'
---
--- * 'mlmLastUpdatedAt' @::@ 'Maybe' 'UTCTime'
---
--- * 'mlmMLModelId' @::@ 'Maybe' 'Text'
---
--- * 'mlmMLModelType' @::@ 'Maybe' 'MLModelType'
---
--- * 'mlmMessage' @::@ 'Maybe' 'Text'
---
--- * 'mlmName' @::@ 'Maybe' 'Text'
---
--- * 'mlmScoreThreshold' @::@ 'Maybe' 'Double'
---
--- * 'mlmScoreThresholdLastUpdatedAt' @::@ 'Maybe' 'UTCTime'
---
--- * 'mlmSizeInBytes' @::@ 'Maybe' 'Integer'
---
--- * 'mlmStatus' @::@ 'Maybe' 'EntityStatus'
---
--- * 'mlmTrainingDataSourceId' @::@ 'Maybe' 'Text'
---
--- * 'mlmTrainingParameters' @::@ 'HashMap' 'Text' 'Text'
---
-mlmodel :: MLModel
-mlmodel = MLModel
-    { _mlmMLModelId                   = Nothing
-    , _mlmTrainingDataSourceId        = Nothing
-    , _mlmCreatedByIamUser            = Nothing
-    , _mlmCreatedAt                   = Nothing
-    , _mlmLastUpdatedAt               = Nothing
-    , _mlmName                        = Nothing
-    , _mlmStatus                      = Nothing
-    , _mlmSizeInBytes                 = Nothing
-    , _mlmEndpointInfo                = Nothing
-    , _mlmTrainingParameters          = mempty
-    , _mlmInputDataLocationS3         = Nothing
-    , _mlmAlgorithm                   = Nothing
-    , _mlmMLModelType                 = Nothing
-    , _mlmScoreThreshold              = Nothing
-    , _mlmScoreThresholdLastUpdatedAt = Nothing
-    , _mlmMessage                     = Nothing
-    }
-
--- | The algorithm used to train the 'MLModel'. The following algorithm is supported:
---
--- SGD -- Stochastic gradient descent. The goal of SGD is to minimize the
--- gradient of the loss function.
-mlmAlgorithm :: Lens' MLModel (Maybe Algorithm)
-mlmAlgorithm = lens _mlmAlgorithm (\s a -> s { _mlmAlgorithm = a })
-
--- | The time that the 'MLModel' was created. The time is expressed in epoch time.
-mlmCreatedAt :: Lens' MLModel (Maybe UTCTime)
-mlmCreatedAt = lens _mlmCreatedAt (\s a -> s { _mlmCreatedAt = a }) . mapping _Time
-
--- | The AWS user account from which the 'MLModel' was created. The account type can
--- be either an AWS root account or an AWS Identity and Access Management (IAM)
--- user account.
-mlmCreatedByIamUser :: Lens' MLModel (Maybe Text)
-mlmCreatedByIamUser =
-    lens _mlmCreatedByIamUser (\s a -> s { _mlmCreatedByIamUser = a })
-
--- | The current endpoint of the 'MLModel'.
-mlmEndpointInfo :: Lens' MLModel (Maybe RealtimeEndpointInfo)
-mlmEndpointInfo = lens _mlmEndpointInfo (\s a -> s { _mlmEndpointInfo = a })
-
--- | The location of the data file or directory in Amazon Simple Storage Service
--- (Amazon S3).
-mlmInputDataLocationS3 :: Lens' MLModel (Maybe Text)
-mlmInputDataLocationS3 =
-    lens _mlmInputDataLocationS3 (\s a -> s { _mlmInputDataLocationS3 = a })
-
--- | The time of the most recent edit to the 'MLModel'. The time is expressed in
--- epoch time.
-mlmLastUpdatedAt :: Lens' MLModel (Maybe UTCTime)
-mlmLastUpdatedAt = lens _mlmLastUpdatedAt (\s a -> s { _mlmLastUpdatedAt = a }) . mapping _Time
-
--- | The ID assigned to the 'MLModel' at creation.
-mlmMLModelId :: Lens' MLModel (Maybe Text)
-mlmMLModelId = lens _mlmMLModelId (\s a -> s { _mlmMLModelId = a })
-
--- | Identifies the 'MLModel' category. The following are the available types:
---
--- REGRESSION - Produces a numeric result. For example, "What listing price
--- should a house have?". BINARY - Produces one of two possible results. For
--- example, "Is this a child-friendly web site?". MULTICLASS - Produces more
--- than two possible results. For example, "Is this a HIGH, LOW or MEDIUM risk
--- trade?".
-mlmMLModelType :: Lens' MLModel (Maybe MLModelType)
-mlmMLModelType = lens _mlmMLModelType (\s a -> s { _mlmMLModelType = a })
-
--- | A description of the most recent details about accessing the 'MLModel'.
-mlmMessage :: Lens' MLModel (Maybe Text)
-mlmMessage = lens _mlmMessage (\s a -> s { _mlmMessage = a })
-
--- | A user-supplied name or description of the 'MLModel'.
-mlmName :: Lens' MLModel (Maybe Text)
-mlmName = lens _mlmName (\s a -> s { _mlmName = a })
-
-mlmScoreThreshold :: Lens' MLModel (Maybe Double)
-mlmScoreThreshold =
-    lens _mlmScoreThreshold (\s a -> s { _mlmScoreThreshold = a })
-
--- | The time of the most recent edit to the 'ScoreThreshold'. The time is expressed
--- in epoch time.
-mlmScoreThresholdLastUpdatedAt :: Lens' MLModel (Maybe UTCTime)
-mlmScoreThresholdLastUpdatedAt =
-    lens _mlmScoreThresholdLastUpdatedAt
-        (\s a -> s { _mlmScoreThresholdLastUpdatedAt = a })
-            . mapping _Time
-
-mlmSizeInBytes :: Lens' MLModel (Maybe Integer)
-mlmSizeInBytes = lens _mlmSizeInBytes (\s a -> s { _mlmSizeInBytes = a })
-
--- | The current status of an 'MLModel'. This element can have one of the following
--- values:
---
--- PENDING - Amazon Machine Learning (Amazon ML) submitted a request to create
--- an 'MLModel'. INPROGRESS - The creation process is underway. FAILED - The
--- request to create an 'MLModel' did not run to completion. It is not usable. COMPLETED - The creation process completed successfully.
--- DELETED - The 'MLModel' is marked as deleted. It is not usable.
-mlmStatus :: Lens' MLModel (Maybe EntityStatus)
-mlmStatus = lens _mlmStatus (\s a -> s { _mlmStatus = a })
-
--- | The ID of the training 'DataSource'. The 'CreateMLModel' operation uses the 'TrainingDataSourceId'.
-mlmTrainingDataSourceId :: Lens' MLModel (Maybe Text)
-mlmTrainingDataSourceId =
-    lens _mlmTrainingDataSourceId (\s a -> s { _mlmTrainingDataSourceId = a })
-
--- | A list of the training parameters in the 'MLModel'. The list is implemented as
--- a map of key/value pairs.
---
--- The following is the current set of training parameters:
---
--- 'sgd.l1RegularizationAmount' - Coefficient regularization L1 norm. It
--- controls overfitting the data by penalizing large coefficients. This tends to
--- drive coefficients to zero, resulting in a sparse feature set. If you use
--- this parameter, specify a small value, such as 1.0E-04 or 1.0E-08.
---
--- The value is a double that ranges from 0 to MAX_DOUBLE. The default is not
--- to use L1 normalization. The parameter cannot be used when 'L2' is specified.
--- Use this parameter sparingly.
---
--- 'sgd.l2RegularizationAmount' - Coefficient regularization L2 norm. It
--- controls overfitting the data by penalizing large coefficients. This tends to
--- drive coefficients to small, nonzero values. If you use this parameter,
--- specify a small value, such as 1.0E-04 or 1.0E-08.
---
--- The valus is a double that ranges from 0 to MAX_DOUBLE. The default is not
--- to use L2 normalization. This cannot be used when 'L1' is specified. Use this
--- parameter sparingly.
---
--- 'sgd.maxPasses' - Number of times that the training process traverses the
--- observations to build the 'MLModel'. The value is an integer that ranges from 1
--- to 10000. The default value is 10.
---
--- 'sgd.maxMLModelSizeInBytes' - Maximum allowed size of the model. Depending on
--- the input data, the model size might affect performance.
---
--- The value is an integer that ranges from 100000 to 2147483648. The default
--- value is 33554432.
---
---
-mlmTrainingParameters :: Lens' MLModel (HashMap Text Text)
-mlmTrainingParameters =
-    lens _mlmTrainingParameters (\s a -> s { _mlmTrainingParameters = a })
-        . _Map
-
-instance FromJSON MLModel where
-    parseJSON = withObject "MLModel" $ \o -> MLModel
-        <$> o .:? "Algorithm"
-        <*> o .:? "CreatedAt"
-        <*> o .:? "CreatedByIamUser"
-        <*> o .:? "EndpointInfo"
-        <*> o .:? "InputDataLocationS3"
-        <*> o .:? "LastUpdatedAt"
-        <*> o .:? "MLModelId"
-        <*> o .:? "MLModelType"
-        <*> o .:? "Message"
-        <*> o .:? "Name"
-        <*> o .:? "ScoreThreshold"
-        <*> o .:? "ScoreThresholdLastUpdatedAt"
-        <*> o .:? "SizeInBytes"
-        <*> o .:? "Status"
-        <*> o .:? "TrainingDataSourceId"
-        <*> o .:? "TrainingParameters" .!= mempty
-
-instance ToJSON MLModel where
-    toJSON MLModel{..} = object
-        [ "MLModelId"                   .= _mlmMLModelId
-        , "TrainingDataSourceId"        .= _mlmTrainingDataSourceId
-        , "CreatedByIamUser"            .= _mlmCreatedByIamUser
-        , "CreatedAt"                   .= _mlmCreatedAt
-        , "LastUpdatedAt"               .= _mlmLastUpdatedAt
-        , "Name"                        .= _mlmName
-        , "Status"                      .= _mlmStatus
-        , "SizeInBytes"                 .= _mlmSizeInBytes
-        , "EndpointInfo"                .= _mlmEndpointInfo
-        , "TrainingParameters"          .= _mlmTrainingParameters
-        , "InputDataLocationS3"         .= _mlmInputDataLocationS3
-        , "Algorithm"                   .= _mlmAlgorithm
-        , "MLModelType"                 .= _mlmMLModelType
-        , "ScoreThreshold"              .= _mlmScoreThreshold
-        , "ScoreThresholdLastUpdatedAt" .= _mlmScoreThresholdLastUpdatedAt
-        , "Message"                     .= _mlmMessage
-        ]
-
-data BatchPrediction = BatchPrediction
-    { _bpBatchPredictionDataSourceId :: Maybe Text
-    , _bpBatchPredictionId           :: Maybe Text
-    , _bpCreatedAt                   :: Maybe POSIX
-    , _bpCreatedByIamUser            :: Maybe Text
-    , _bpInputDataLocationS3         :: Maybe Text
-    , _bpLastUpdatedAt               :: Maybe POSIX
-    , _bpMLModelId                   :: Maybe Text
-    , _bpMessage                     :: Maybe Text
-    , _bpName                        :: Maybe Text
-    , _bpOutputUri                   :: Maybe Text
-    , _bpStatus                      :: Maybe EntityStatus
-    } deriving (Eq, Read, Show)
-
--- | 'BatchPrediction' constructor.
---
--- The fields accessible through corresponding lenses are:
---
--- * 'bpBatchPredictionDataSourceId' @::@ 'Maybe' 'Text'
---
--- * 'bpBatchPredictionId' @::@ 'Maybe' 'Text'
---
--- * 'bpCreatedAt' @::@ 'Maybe' 'UTCTime'
---
--- * 'bpCreatedByIamUser' @::@ 'Maybe' 'Text'
---
--- * 'bpInputDataLocationS3' @::@ 'Maybe' 'Text'
---
--- * 'bpLastUpdatedAt' @::@ 'Maybe' 'UTCTime'
---
--- * 'bpMLModelId' @::@ 'Maybe' 'Text'
---
--- * 'bpMessage' @::@ 'Maybe' 'Text'
---
--- * 'bpName' @::@ 'Maybe' 'Text'
---
--- * 'bpOutputUri' @::@ 'Maybe' 'Text'
---
--- * 'bpStatus' @::@ 'Maybe' 'EntityStatus'
---
-batchPrediction :: BatchPrediction
-batchPrediction = BatchPrediction
-    { _bpBatchPredictionId           = Nothing
-    , _bpMLModelId                   = Nothing
-    , _bpBatchPredictionDataSourceId = Nothing
-    , _bpInputDataLocationS3         = Nothing
-    , _bpCreatedByIamUser            = Nothing
-    , _bpCreatedAt                   = Nothing
-    , _bpLastUpdatedAt               = Nothing
-    , _bpName                        = Nothing
-    , _bpStatus                      = Nothing
-    , _bpOutputUri                   = Nothing
-    , _bpMessage                     = Nothing
-    }
-
--- | The ID of the 'DataSource' that points to the group of observations to predict.
-bpBatchPredictionDataSourceId :: Lens' BatchPrediction (Maybe Text)
-bpBatchPredictionDataSourceId =
-    lens _bpBatchPredictionDataSourceId
-        (\s a -> s { _bpBatchPredictionDataSourceId = a })
-
--- | The ID assigned to the 'BatchPrediction' at creation. This value should be
--- identical to the value of the 'BatchPredictionID' in the request.
-bpBatchPredictionId :: Lens' BatchPrediction (Maybe Text)
-bpBatchPredictionId =
-    lens _bpBatchPredictionId (\s a -> s { _bpBatchPredictionId = a })
-
--- | The time that the 'BatchPrediction' was created. The time is expressed in epoch
--- time.
-bpCreatedAt :: Lens' BatchPrediction (Maybe UTCTime)
-bpCreatedAt = lens _bpCreatedAt (\s a -> s { _bpCreatedAt = a }) . mapping _Time
-
--- | The AWS user account that invoked the 'BatchPrediction'. The account type can
--- be either an AWS root account or an AWS Identity and Access Management (IAM)
--- user account.
-bpCreatedByIamUser :: Lens' BatchPrediction (Maybe Text)
-bpCreatedByIamUser =
-    lens _bpCreatedByIamUser (\s a -> s { _bpCreatedByIamUser = a })
-
--- | The location of the data file or directory in Amazon Simple Storage Service
--- (Amazon S3).
-bpInputDataLocationS3 :: Lens' BatchPrediction (Maybe Text)
-bpInputDataLocationS3 =
-    lens _bpInputDataLocationS3 (\s a -> s { _bpInputDataLocationS3 = a })
-
--- | The time of the most recent edit to the 'BatchPrediction'. The time is
--- expressed in epoch time.
-bpLastUpdatedAt :: Lens' BatchPrediction (Maybe UTCTime)
-bpLastUpdatedAt = lens _bpLastUpdatedAt (\s a -> s { _bpLastUpdatedAt = a }) . mapping _Time
-
--- | The ID of the 'MLModel' that generated predictions for the 'BatchPrediction'
--- request.
-bpMLModelId :: Lens' BatchPrediction (Maybe Text)
-bpMLModelId = lens _bpMLModelId (\s a -> s { _bpMLModelId = a })
-
--- | A description of the most recent details about processing the batch
--- prediction request.
-bpMessage :: Lens' BatchPrediction (Maybe Text)
-bpMessage = lens _bpMessage (\s a -> s { _bpMessage = a })
-
--- | A user-supplied name or description of the 'BatchPrediction'.
-bpName :: Lens' BatchPrediction (Maybe Text)
-bpName = lens _bpName (\s a -> s { _bpName = a })
-
--- | The location of an Amazon S3 bucket or directory to receive the operation
--- results. The following substrings are not allowed in the s3 key portion of
--- the "outputURI" field: ':', '//', '/./', '/../'.
-bpOutputUri :: Lens' BatchPrediction (Maybe Text)
-bpOutputUri = lens _bpOutputUri (\s a -> s { _bpOutputUri = a })
-
--- | The status of the 'BatchPrediction'. This element can have one of the following
--- values:
---
--- 'PENDING' - Amazon Machine Learning (Amazon ML) submitted a request to
--- generate predictions for a batch of observations.  'INPROGRESS' - The process
--- is underway.  'FAILED' - The request to peform a batch prediction did not run
--- to completion. It is not usable.  'COMPLETED' - The batch prediction process
--- completed successfully.  'DELETED' - The 'BatchPrediction' is marked as deleted.
--- It is not usable.
-bpStatus :: Lens' BatchPrediction (Maybe EntityStatus)
-bpStatus = lens _bpStatus (\s a -> s { _bpStatus = a })
-
-instance FromJSON BatchPrediction where
-    parseJSON = withObject "BatchPrediction" $ \o -> BatchPrediction
-        <$> o .:? "BatchPredictionDataSourceId"
-        <*> o .:? "BatchPredictionId"
-        <*> o .:? "CreatedAt"
-        <*> o .:? "CreatedByIamUser"
-        <*> o .:? "InputDataLocationS3"
-        <*> o .:? "LastUpdatedAt"
-        <*> o .:? "MLModelId"
-        <*> o .:? "Message"
-        <*> o .:? "Name"
-        <*> o .:? "OutputUri"
-        <*> o .:? "Status"
-
-instance ToJSON BatchPrediction where
-    toJSON BatchPrediction{..} = object
-        [ "BatchPredictionId"           .= _bpBatchPredictionId
-        , "MLModelId"                   .= _bpMLModelId
-        , "BatchPredictionDataSourceId" .= _bpBatchPredictionDataSourceId
-        , "InputDataLocationS3"         .= _bpInputDataLocationS3
-        , "CreatedByIamUser"            .= _bpCreatedByIamUser
-        , "CreatedAt"                   .= _bpCreatedAt
-        , "LastUpdatedAt"               .= _bpLastUpdatedAt
-        , "Name"                        .= _bpName
-        , "Status"                      .= _bpStatus
-        , "OutputUri"                   .= _bpOutputUri
-        , "Message"                     .= _bpMessage
-        ]
-
-data SortOrder
-    = Asc -- ^ asc
-    | Dsc -- ^ dsc
-      deriving (Eq, Ord, Read, Show, Generic, Enum)
-
-instance Hashable SortOrder
-
-instance FromText SortOrder where
-    parser = takeLowerText >>= \case
-        "asc" -> pure Asc
-        "dsc" -> pure Dsc
-        e     -> fail $
-            "Failure parsing SortOrder from " ++ show e
-
-instance ToText SortOrder where
-    toText = \case
-        Asc -> "asc"
-        Dsc -> "dsc"
-
-instance ToByteString SortOrder
-instance ToHeader     SortOrder
-instance ToQuery      SortOrder
-
-instance FromJSON SortOrder where
-    parseJSON = parseJSONText "SortOrder"
-
-instance ToJSON SortOrder where
-    toJSON = toJSONText
-
-data Algorithm
-    = Sgd -- ^ sgd
-      deriving (Eq, Ord, Read, Show, Generic, Enum)
-
-instance Hashable Algorithm
-
-instance FromText Algorithm where
-    parser = takeLowerText >>= \case
-        "sgd" -> pure Sgd
-        e     -> fail $
-            "Failure parsing Algorithm from " ++ show e
-
-instance ToText Algorithm where
-    toText Sgd = "sgd"
-
-instance ToByteString Algorithm
-instance ToHeader     Algorithm
-instance ToQuery      Algorithm
-
-instance FromJSON Algorithm where
-    parseJSON = parseJSONText "Algorithm"
-
-instance ToJSON Algorithm where
-    toJSON = toJSONText
-
-data EntityStatus
-    = ESCompleted  -- ^ COMPLETED
-    | ESDeleted    -- ^ DELETED
-    | ESFailed     -- ^ FAILED
-    | ESInprogress -- ^ INPROGRESS
-    | ESPending    -- ^ PENDING
-      deriving (Eq, Ord, Read, Show, Generic, Enum)
-
-instance Hashable EntityStatus
-
-instance FromText EntityStatus where
-    parser = takeLowerText >>= \case
-        "completed"  -> pure ESCompleted
-        "deleted"    -> pure ESDeleted
-        "failed"     -> pure ESFailed
-        "inprogress" -> pure ESInprogress
-        "pending"    -> pure ESPending
-        e            -> fail $
-            "Failure parsing EntityStatus from " ++ show e
-
-instance ToText EntityStatus where
-    toText = \case
-        ESCompleted  -> "COMPLETED"
-        ESDeleted    -> "DELETED"
-        ESFailed     -> "FAILED"
-        ESInprogress -> "INPROGRESS"
-        ESPending    -> "PENDING"
-
-instance ToByteString EntityStatus
-instance ToHeader     EntityStatus
-instance ToQuery      EntityStatus
-
-instance FromJSON EntityStatus where
-    parseJSON = parseJSONText "EntityStatus"
-
-instance ToJSON EntityStatus where
-    toJSON = toJSONText
-
-data DataSource = DataSource
-    { _dsComputeStatistics :: Maybe Bool
-    , _dsCreatedAt         :: Maybe POSIX
-    , _dsCreatedByIamUser  :: Maybe Text
-    , _dsDataLocationS3    :: Maybe Text
-    , _dsDataRearrangement :: Maybe Text
-    , _dsDataSizeInBytes   :: Maybe Integer
-    , _dsDataSourceId      :: Maybe Text
-    , _dsLastUpdatedAt     :: Maybe POSIX
-    , _dsMessage           :: Maybe Text
-    , _dsName              :: Maybe Text
-    , _dsNumberOfFiles     :: Maybe Integer
-    , _dsRDSMetadata       :: Maybe RDSMetadata
-    , _dsRedshiftMetadata  :: Maybe RedshiftMetadata
-    , _dsRoleARN           :: Maybe Text
-    , _dsStatus            :: Maybe EntityStatus
-    } deriving (Eq, Read, Show)
-
--- | 'DataSource' constructor.
---
--- The fields accessible through corresponding lenses are:
---
--- * 'dsComputeStatistics' @::@ 'Maybe' 'Bool'
---
--- * 'dsCreatedAt' @::@ 'Maybe' 'UTCTime'
---
--- * 'dsCreatedByIamUser' @::@ 'Maybe' 'Text'
---
--- * 'dsDataLocationS3' @::@ 'Maybe' 'Text'
---
--- * 'dsDataRearrangement' @::@ 'Maybe' 'Text'
---
--- * 'dsDataSizeInBytes' @::@ 'Maybe' 'Integer'
---
--- * 'dsDataSourceId' @::@ 'Maybe' 'Text'
---
--- * 'dsLastUpdatedAt' @::@ 'Maybe' 'UTCTime'
---
--- * 'dsMessage' @::@ 'Maybe' 'Text'
---
--- * 'dsName' @::@ 'Maybe' 'Text'
---
--- * 'dsNumberOfFiles' @::@ 'Maybe' 'Integer'
---
--- * 'dsRDSMetadata' @::@ 'Maybe' 'RDSMetadata'
---
--- * 'dsRedshiftMetadata' @::@ 'Maybe' 'RedshiftMetadata'
---
--- * 'dsRoleARN' @::@ 'Maybe' 'Text'
---
--- * 'dsStatus' @::@ 'Maybe' 'EntityStatus'
---
-dataSource :: DataSource
-dataSource = DataSource
-    { _dsDataSourceId      = Nothing
-    , _dsDataLocationS3    = Nothing
-    , _dsDataRearrangement = Nothing
-    , _dsCreatedByIamUser  = Nothing
-    , _dsCreatedAt         = Nothing
-    , _dsLastUpdatedAt     = Nothing
-    , _dsDataSizeInBytes   = Nothing
-    , _dsNumberOfFiles     = Nothing
-    , _dsName              = Nothing
-    , _dsStatus            = Nothing
-    , _dsMessage           = Nothing
-    , _dsRedshiftMetadata  = Nothing
-    , _dsRDSMetadata       = Nothing
-    , _dsRoleARN           = Nothing
-    , _dsComputeStatistics = Nothing
-    }
-
--- | The parameter is 'true' if statistics need to be generated from the
--- observation data.
-dsComputeStatistics :: Lens' DataSource (Maybe Bool)
-dsComputeStatistics =
-    lens _dsComputeStatistics (\s a -> s { _dsComputeStatistics = a })
-
--- | The time that the 'DataSource' was created. The time is expressed in epoch time.
-dsCreatedAt :: Lens' DataSource (Maybe UTCTime)
-dsCreatedAt = lens _dsCreatedAt (\s a -> s { _dsCreatedAt = a }) . mapping _Time
-
--- | The AWS user account from which the 'DataSource' was created. The account type
--- can be either an AWS root account or an AWS Identity and Access Management
--- (IAM) user account.
-dsCreatedByIamUser :: Lens' DataSource (Maybe Text)
-dsCreatedByIamUser =
-    lens _dsCreatedByIamUser (\s a -> s { _dsCreatedByIamUser = a })
-
--- | The location and name of the data in Amazon Simple Storage Service (Amazon
--- S3) that is used by a 'DataSource'.
-dsDataLocationS3 :: Lens' DataSource (Maybe Text)
-dsDataLocationS3 = lens _dsDataLocationS3 (\s a -> s { _dsDataLocationS3 = a })
-
--- | A JSON string that represents the splitting requirement of a 'Datasource'.
-dsDataRearrangement :: Lens' DataSource (Maybe Text)
-dsDataRearrangement =
-    lens _dsDataRearrangement (\s a -> s { _dsDataRearrangement = a })
-
--- | The total number of observations contained in the data files that the 'DataSource' references.
-dsDataSizeInBytes :: Lens' DataSource (Maybe Integer)
-dsDataSizeInBytes =
-    lens _dsDataSizeInBytes (\s a -> s { _dsDataSizeInBytes = a })
-
--- | The ID that is assigned to the 'DataSource' during creation.
-dsDataSourceId :: Lens' DataSource (Maybe Text)
-dsDataSourceId = lens _dsDataSourceId (\s a -> s { _dsDataSourceId = a })
-
--- | The time of the most recent edit to the 'BatchPrediction'. The time is
--- expressed in epoch time.
-dsLastUpdatedAt :: Lens' DataSource (Maybe UTCTime)
-dsLastUpdatedAt = lens _dsLastUpdatedAt (\s a -> s { _dsLastUpdatedAt = a }) . mapping _Time
-
--- | A description of the most recent details about creating the 'DataSource'.
-dsMessage :: Lens' DataSource (Maybe Text)
-dsMessage = lens _dsMessage (\s a -> s { _dsMessage = a })
-
--- | A user-supplied name or description of the 'DataSource'.
-dsName :: Lens' DataSource (Maybe Text)
-dsName = lens _dsName (\s a -> s { _dsName = a })
-
--- | The number of data files referenced by the 'DataSource'.
-dsNumberOfFiles :: Lens' DataSource (Maybe Integer)
-dsNumberOfFiles = lens _dsNumberOfFiles (\s a -> s { _dsNumberOfFiles = a })
-
-dsRDSMetadata :: Lens' DataSource (Maybe RDSMetadata)
-dsRDSMetadata = lens _dsRDSMetadata (\s a -> s { _dsRDSMetadata = a })
-
-dsRedshiftMetadata :: Lens' DataSource (Maybe RedshiftMetadata)
-dsRedshiftMetadata =
-    lens _dsRedshiftMetadata (\s a -> s { _dsRedshiftMetadata = a })
-
-dsRoleARN :: Lens' DataSource (Maybe Text)
-dsRoleARN = lens _dsRoleARN (\s a -> s { _dsRoleARN = a })
-
--- | The current status of the 'DataSource'. This element can have one of the
--- following values:
---
--- PENDING - Amazon Machine Learning (Amazon ML) submitted a request to create
--- a 'DataSource'. INPROGRESS - The creation process is underway. FAILED - The
--- request to create a 'DataSource' did not run to completion. It is not usable. COMPLETED - The creation process completed successfully.
--- DELETED - The 'DataSource' is marked as deleted. It is not usable.
-dsStatus :: Lens' DataSource (Maybe EntityStatus)
-dsStatus = lens _dsStatus (\s a -> s { _dsStatus = a })
-
-instance FromJSON DataSource where
-    parseJSON = withObject "DataSource" $ \o -> DataSource
-        <$> o .:? "ComputeStatistics"
-        <*> o .:? "CreatedAt"
-        <*> o .:? "CreatedByIamUser"
-        <*> o .:? "DataLocationS3"
-        <*> o .:? "DataRearrangement"
-        <*> o .:? "DataSizeInBytes"
-        <*> o .:? "DataSourceId"
-        <*> o .:? "LastUpdatedAt"
-        <*> o .:? "Message"
-        <*> o .:? "Name"
-        <*> o .:? "NumberOfFiles"
-        <*> o .:? "RDSMetadata"
-        <*> o .:? "RedshiftMetadata"
-        <*> o .:? "RoleARN"
-        <*> o .:? "Status"
-
-instance ToJSON DataSource where
-    toJSON DataSource{..} = object
-        [ "DataSourceId"      .= _dsDataSourceId
-        , "DataLocationS3"    .= _dsDataLocationS3
-        , "DataRearrangement" .= _dsDataRearrangement
-        , "CreatedByIamUser"  .= _dsCreatedByIamUser
-        , "CreatedAt"         .= _dsCreatedAt
-        , "LastUpdatedAt"     .= _dsLastUpdatedAt
-        , "DataSizeInBytes"   .= _dsDataSizeInBytes
-        , "NumberOfFiles"     .= _dsNumberOfFiles
-        , "Name"              .= _dsName
-        , "Status"            .= _dsStatus
-        , "Message"           .= _dsMessage
-        , "RedshiftMetadata"  .= _dsRedshiftMetadata
-        , "RDSMetadata"       .= _dsRDSMetadata
-        , "RoleARN"           .= _dsRoleARN
-        , "ComputeStatistics" .= _dsComputeStatistics
-        ]
-
-data RDSDatabase = RDSDatabase
-    { _rdsdDatabaseName       :: Text
-    , _rdsdInstanceIdentifier :: Text
-    } deriving (Eq, Ord, Read, Show)
-
--- | 'RDSDatabase' constructor.
---
--- The fields accessible through corresponding lenses are:
---
--- * 'rdsdDatabaseName' @::@ 'Text'
---
--- * 'rdsdInstanceIdentifier' @::@ 'Text'
---
-rdsdatabase :: Text -- ^ 'rdsdInstanceIdentifier'
-            -> Text -- ^ 'rdsdDatabaseName'
-            -> RDSDatabase
-rdsdatabase p1 p2 = RDSDatabase
-    { _rdsdInstanceIdentifier = p1
-    , _rdsdDatabaseName       = p2
-    }
-
-rdsdDatabaseName :: Lens' RDSDatabase Text
-rdsdDatabaseName = lens _rdsdDatabaseName (\s a -> s { _rdsdDatabaseName = a })
-
--- | The ID of an RDS DB instance.
-rdsdInstanceIdentifier :: Lens' RDSDatabase Text
-rdsdInstanceIdentifier =
-    lens _rdsdInstanceIdentifier (\s a -> s { _rdsdInstanceIdentifier = a })
-
-instance FromJSON RDSDatabase where
-    parseJSON = withObject "RDSDatabase" $ \o -> RDSDatabase
-        <$> o .:  "DatabaseName"
-        <*> o .:  "InstanceIdentifier"
-
-instance ToJSON RDSDatabase where
-    toJSON RDSDatabase{..} = object
-        [ "InstanceIdentifier" .= _rdsdInstanceIdentifier
-        , "DatabaseName"       .= _rdsdDatabaseName
-        ]
-
-data RDSDatabaseCredentials = RDSDatabaseCredentials
-    { _rdsdcPassword :: Text
-    , _rdsdcUsername :: Text
-    } deriving (Eq, Ord, Read, Show)
-
--- | 'RDSDatabaseCredentials' constructor.
---
--- The fields accessible through corresponding lenses are:
---
--- * 'rdsdcPassword' @::@ 'Text'
---
--- * 'rdsdcUsername' @::@ 'Text'
---
-rdsdatabaseCredentials :: Text -- ^ 'rdsdcUsername'
-                       -> Text -- ^ 'rdsdcPassword'
-                       -> RDSDatabaseCredentials
-rdsdatabaseCredentials p1 p2 = RDSDatabaseCredentials
-    { _rdsdcUsername = p1
-    , _rdsdcPassword = p2
-    }
-
-rdsdcPassword :: Lens' RDSDatabaseCredentials Text
-rdsdcPassword = lens _rdsdcPassword (\s a -> s { _rdsdcPassword = a })
-
-rdsdcUsername :: Lens' RDSDatabaseCredentials Text
-rdsdcUsername = lens _rdsdcUsername (\s a -> s { _rdsdcUsername = a })
-
-instance FromJSON RDSDatabaseCredentials where
-    parseJSON = withObject "RDSDatabaseCredentials" $ \o -> RDSDatabaseCredentials
-        <$> o .:  "Password"
-        <*> o .:  "Username"
-
-instance ToJSON RDSDatabaseCredentials where
-    toJSON RDSDatabaseCredentials{..} = object
-        [ "Username" .= _rdsdcUsername
-        , "Password" .= _rdsdcPassword
-        ]
-
-data MLModelFilterVariable
-    = MLMFVAlgorithm              -- ^ Algorithm
-    | MLMFVCreatedAt              -- ^ CreatedAt
-    | MLMFVIAMUser                -- ^ IAMUser
-    | MLMFVLastUpdatedAt          -- ^ LastUpdatedAt
-    | MLMFVMLModelType            -- ^ MLModelType
-    | MLMFVName                   -- ^ Name
-    | MLMFVRealtimeEndpointStatus -- ^ RealtimeEndpointStatus
-    | MLMFVStatus                 -- ^ Status
-    | MLMFVTrainingDataSourceId   -- ^ TrainingDataSourceId
-    | MLMFVTrainingDataURI        -- ^ TrainingDataURI
-      deriving (Eq, Ord, Read, Show, Generic, Enum)
-
-instance Hashable MLModelFilterVariable
-
-instance FromText MLModelFilterVariable where
-    parser = takeLowerText >>= \case
-        "algorithm"              -> pure MLMFVAlgorithm
-        "createdat"              -> pure MLMFVCreatedAt
-        "iamuser"                -> pure MLMFVIAMUser
-        "lastupdatedat"          -> pure MLMFVLastUpdatedAt
-        "mlmodeltype"            -> pure MLMFVMLModelType
-        "name"                   -> pure MLMFVName
-        "realtimeendpointstatus" -> pure MLMFVRealtimeEndpointStatus
-        "status"                 -> pure MLMFVStatus
-        "trainingdatasourceid"   -> pure MLMFVTrainingDataSourceId
-        "trainingdatauri"        -> pure MLMFVTrainingDataURI
-        e                        -> fail $
-            "Failure parsing MLModelFilterVariable from " ++ show e
-
-instance ToText MLModelFilterVariable where
-    toText = \case
-        MLMFVAlgorithm              -> "Algorithm"
-        MLMFVCreatedAt              -> "CreatedAt"
-        MLMFVIAMUser                -> "IAMUser"
-        MLMFVLastUpdatedAt          -> "LastUpdatedAt"
-        MLMFVMLModelType            -> "MLModelType"
-        MLMFVName                   -> "Name"
-        MLMFVRealtimeEndpointStatus -> "RealtimeEndpointStatus"
-        MLMFVStatus                 -> "Status"
-        MLMFVTrainingDataSourceId   -> "TrainingDataSourceId"
-        MLMFVTrainingDataURI        -> "TrainingDataURI"
-
-instance ToByteString MLModelFilterVariable
-instance ToHeader     MLModelFilterVariable
-instance ToQuery      MLModelFilterVariable
-
-instance FromJSON MLModelFilterVariable where
-    parseJSON = parseJSONText "MLModelFilterVariable"
-
-instance ToJSON MLModelFilterVariable where
-    toJSON = toJSONText
-
-data DataSourceFilterVariable
-    = DataCreatedAt      -- ^ CreatedAt
-    | DataDataLocationS3 -- ^ DataLocationS3
-    | DataIAMUser        -- ^ IAMUser
-    | DataLastUpdatedAt  -- ^ LastUpdatedAt
-    | DataName           -- ^ Name
-    | DataStatus         -- ^ Status
-      deriving (Eq, Ord, Read, Show, Generic, Enum)
-
-instance Hashable DataSourceFilterVariable
-
-instance FromText DataSourceFilterVariable where
-    parser = takeLowerText >>= \case
-        "createdat"      -> pure DataCreatedAt
-        "datalocations3" -> pure DataDataLocationS3
-        "iamuser"        -> pure DataIAMUser
-        "lastupdatedat"  -> pure DataLastUpdatedAt
-        "name"           -> pure DataName
-        "status"         -> pure DataStatus
-        e                -> fail $
-            "Failure parsing DataSourceFilterVariable from " ++ show e
-
-instance ToText DataSourceFilterVariable where
-    toText = \case
-        DataCreatedAt      -> "CreatedAt"
-        DataDataLocationS3 -> "DataLocationS3"
-        DataIAMUser        -> "IAMUser"
-        DataLastUpdatedAt  -> "LastUpdatedAt"
-        DataName           -> "Name"
-        DataStatus         -> "Status"
-
-instance ToByteString DataSourceFilterVariable
-instance ToHeader     DataSourceFilterVariable
-instance ToQuery      DataSourceFilterVariable
-
-instance FromJSON DataSourceFilterVariable where
-    parseJSON = parseJSONText "DataSourceFilterVariable"
-
-instance ToJSON DataSourceFilterVariable where
-    toJSON = toJSONText
-
-data RedshiftDataSpec = RedshiftDataSpec
-    { _rdsDataRearrangement   :: Maybe Text
-    , _rdsDataSchema          :: Maybe Text
-    , _rdsDataSchemaUri       :: Maybe Text
-    , _rdsDatabaseCredentials :: RedshiftDatabaseCredentials
-    , _rdsDatabaseInformation :: RedshiftDatabase
-    , _rdsS3StagingLocation   :: Text
-    , _rdsSelectSqlQuery      :: Text
-    } deriving (Eq, Read, Show)
-
--- | 'RedshiftDataSpec' constructor.
---
--- The fields accessible through corresponding lenses are:
---
--- * 'rdsDataRearrangement' @::@ 'Maybe' 'Text'
---
--- * 'rdsDataSchema' @::@ 'Maybe' 'Text'
---
--- * 'rdsDataSchemaUri' @::@ 'Maybe' 'Text'
---
--- * 'rdsDatabaseCredentials' @::@ 'RedshiftDatabaseCredentials'
---
--- * 'rdsDatabaseInformation' @::@ 'RedshiftDatabase'
---
--- * 'rdsS3StagingLocation' @::@ 'Text'
---
--- * 'rdsSelectSqlQuery' @::@ 'Text'
---
-redshiftDataSpec :: RedshiftDatabase -- ^ 'rdsDatabaseInformation'
-                 -> Text -- ^ 'rdsSelectSqlQuery'
-                 -> RedshiftDatabaseCredentials -- ^ 'rdsDatabaseCredentials'
-                 -> Text -- ^ 'rdsS3StagingLocation'
-                 -> RedshiftDataSpec
-redshiftDataSpec p1 p2 p3 p4 = RedshiftDataSpec
-    { _rdsDatabaseInformation = p1
-    , _rdsSelectSqlQuery      = p2
-    , _rdsDatabaseCredentials = p3
-    , _rdsS3StagingLocation   = p4
-    , _rdsDataRearrangement   = Nothing
-    , _rdsDataSchema          = Nothing
-    , _rdsDataSchemaUri       = Nothing
-    }
-
--- | Describes the splitting specifications for a 'DataSource'.
-rdsDataRearrangement :: Lens' RedshiftDataSpec (Maybe Text)
-rdsDataRearrangement =
-    lens _rdsDataRearrangement (\s a -> s { _rdsDataRearrangement = a })
-
--- | Describes the schema for an Amazon Redshift 'DataSource'.
-rdsDataSchema :: Lens' RedshiftDataSpec (Maybe Text)
-rdsDataSchema = lens _rdsDataSchema (\s a -> s { _rdsDataSchema = a })
-
--- | Describes the schema location for an Amazon Redshift 'DataSource'.
-rdsDataSchemaUri :: Lens' RedshiftDataSpec (Maybe Text)
-rdsDataSchemaUri = lens _rdsDataSchemaUri (\s a -> s { _rdsDataSchemaUri = a })
-
--- | Describes AWS Identity and Access Management (IAM) credentials that are used
--- connect to the Amazon Redshift database.
-rdsDatabaseCredentials :: Lens' RedshiftDataSpec RedshiftDatabaseCredentials
-rdsDatabaseCredentials =
-    lens _rdsDatabaseCredentials (\s a -> s { _rdsDatabaseCredentials = a })
-
--- | Describes the 'DatabaseName' and 'ClusterIdentifier' for an Amazon Redshift 'DataSource'.
-rdsDatabaseInformation :: Lens' RedshiftDataSpec RedshiftDatabase
-rdsDatabaseInformation =
-    lens _rdsDatabaseInformation (\s a -> s { _rdsDatabaseInformation = a })
-
--- | Describes an Amazon S3 location to store the result set of the 'SelectSqlQuery'
--- query.
-rdsS3StagingLocation :: Lens' RedshiftDataSpec Text
-rdsS3StagingLocation =
-    lens _rdsS3StagingLocation (\s a -> s { _rdsS3StagingLocation = a })
-
--- | Describes the SQL Query to execute on an Amazon Redshift database for an
--- Amazon Redshift 'DataSource'.
-rdsSelectSqlQuery :: Lens' RedshiftDataSpec Text
-rdsSelectSqlQuery =
-    lens _rdsSelectSqlQuery (\s a -> s { _rdsSelectSqlQuery = a })
-
-instance FromJSON RedshiftDataSpec where
-    parseJSON = withObject "RedshiftDataSpec" $ \o -> RedshiftDataSpec
-        <$> o .:? "DataRearrangement"
-        <*> o .:? "DataSchema"
-        <*> o .:? "DataSchemaUri"
-        <*> o .:  "DatabaseCredentials"
-        <*> o .:  "DatabaseInformation"
-        <*> o .:  "S3StagingLocation"
-        <*> o .:  "SelectSqlQuery"
-
-instance ToJSON RedshiftDataSpec where
-    toJSON RedshiftDataSpec{..} = object
-        [ "DatabaseInformation" .= _rdsDatabaseInformation
-        , "SelectSqlQuery"      .= _rdsSelectSqlQuery
-        , "DatabaseCredentials" .= _rdsDatabaseCredentials
-        , "S3StagingLocation"   .= _rdsS3StagingLocation
-        , "DataRearrangement"   .= _rdsDataRearrangement
-        , "DataSchema"          .= _rdsDataSchema
-        , "DataSchemaUri"       .= _rdsDataSchemaUri
-        ]
-
-data Evaluation = Evaluation
-    { _eCreatedAt              :: Maybe POSIX
-    , _eCreatedByIamUser       :: Maybe Text
-    , _eEvaluationDataSourceId :: Maybe Text
-    , _eEvaluationId           :: Maybe Text
-    , _eInputDataLocationS3    :: Maybe Text
-    , _eLastUpdatedAt          :: Maybe POSIX
-    , _eMLModelId              :: Maybe Text
-    , _eMessage                :: Maybe Text
-    , _eName                   :: Maybe Text
-    , _ePerformanceMetrics     :: Maybe PerformanceMetrics
-    , _eStatus                 :: Maybe EntityStatus
-    } deriving (Eq, Read, Show)
-
--- | 'Evaluation' constructor.
---
--- The fields accessible through corresponding lenses are:
---
--- * 'eCreatedAt' @::@ 'Maybe' 'UTCTime'
---
--- * 'eCreatedByIamUser' @::@ 'Maybe' 'Text'
---
--- * 'eEvaluationDataSourceId' @::@ 'Maybe' 'Text'
---
--- * 'eEvaluationId' @::@ 'Maybe' 'Text'
---
--- * 'eInputDataLocationS3' @::@ 'Maybe' 'Text'
---
--- * 'eLastUpdatedAt' @::@ 'Maybe' 'UTCTime'
---
--- * 'eMLModelId' @::@ 'Maybe' 'Text'
---
--- * 'eMessage' @::@ 'Maybe' 'Text'
---
--- * 'eName' @::@ 'Maybe' 'Text'
---
--- * 'ePerformanceMetrics' @::@ 'Maybe' 'PerformanceMetrics'
---
--- * 'eStatus' @::@ 'Maybe' 'EntityStatus'
---
-evaluation :: Evaluation
-evaluation = Evaluation
-    { _eEvaluationId           = Nothing
-    , _eMLModelId              = Nothing
-    , _eEvaluationDataSourceId = Nothing
-    , _eInputDataLocationS3    = Nothing
-    , _eCreatedByIamUser       = Nothing
-    , _eCreatedAt              = Nothing
-    , _eLastUpdatedAt          = Nothing
-    , _eName                   = Nothing
-    , _eStatus                 = Nothing
-    , _ePerformanceMetrics     = Nothing
-    , _eMessage                = Nothing
-    }
-
--- | The time that the 'Evaluation' was created. The time is expressed in epoch time.
-eCreatedAt :: Lens' Evaluation (Maybe UTCTime)
-eCreatedAt = lens _eCreatedAt (\s a -> s { _eCreatedAt = a }) . mapping _Time
-
--- | The AWS user account that invoked the evaluation. The account type can be
--- either an AWS root account or an AWS Identity and Access Management (IAM)
--- user account.
-eCreatedByIamUser :: Lens' Evaluation (Maybe Text)
-eCreatedByIamUser =
-    lens _eCreatedByIamUser (\s a -> s { _eCreatedByIamUser = a })
-
--- | The ID of the 'DataSource' that is used to evaluate the 'MLModel'.
-eEvaluationDataSourceId :: Lens' Evaluation (Maybe Text)
-eEvaluationDataSourceId =
-    lens _eEvaluationDataSourceId (\s a -> s { _eEvaluationDataSourceId = a })
-
--- | The ID that is assigned to the 'Evaluation' at creation.
-eEvaluationId :: Lens' Evaluation (Maybe Text)
-eEvaluationId = lens _eEvaluationId (\s a -> s { _eEvaluationId = a })
-
--- | The location and name of the data in Amazon Simple Storage Server (Amazon S3)
--- that is used in the evaluation.
-eInputDataLocationS3 :: Lens' Evaluation (Maybe Text)
-eInputDataLocationS3 =
-    lens _eInputDataLocationS3 (\s a -> s { _eInputDataLocationS3 = a })
-
--- | The time of the most recent edit to the 'Evaluation'. The time is expressed in
--- epoch time.
-eLastUpdatedAt :: Lens' Evaluation (Maybe UTCTime)
-eLastUpdatedAt = lens _eLastUpdatedAt (\s a -> s { _eLastUpdatedAt = a }) . mapping _Time
-
--- | The ID of the 'MLModel' that is the focus of the evaluation.
-eMLModelId :: Lens' Evaluation (Maybe Text)
-eMLModelId = lens _eMLModelId (\s a -> s { _eMLModelId = a })
-
--- | A description of the most recent details about evaluating the 'MLModel'.
-eMessage :: Lens' Evaluation (Maybe Text)
-eMessage = lens _eMessage (\s a -> s { _eMessage = a })
-
--- | A user-supplied name or description of the 'Evaluation'.
-eName :: Lens' Evaluation (Maybe Text)
-eName = lens _eName (\s a -> s { _eName = a })
-
--- | Measurements of how well the 'MLModel' performed, using observations referenced
--- by the 'DataSource'. One of the following metrics is returned, based on the
--- type of the MLModel:
---
--- BinaryAUC: A binary 'MLModel' uses the Area Under the Curve (AUC) technique
--- to measure performance.
---
--- RegressionRMSE: A regression 'MLModel' uses the Root Mean Square Error
--- (RMSE) technique to measure performance. RMSE measures the difference between
--- predicted and actual values for a single variable.
---
--- MulticlassAvgFScore: A multiclass 'MLModel' uses the F1 score technique to
--- measure performance.
---
--- For more information about performance metrics, please see the <http://docs.aws.amazon.com/machine-learning/latest/dg AmazonMachine Learning Developer Guide>.
-ePerformanceMetrics :: Lens' Evaluation (Maybe PerformanceMetrics)
-ePerformanceMetrics =
-    lens _ePerformanceMetrics (\s a -> s { _ePerformanceMetrics = a })
-
--- | The status of the evaluation. This element can have one of the following
--- values:
---
--- 'PENDING' - Amazon Machine Learning (Amazon ML) submitted a request to
--- evaluate an 'MLModel'.  'INPROGRESS' - The evaluation is underway.  'FAILED' - The
--- request to evaluate an 'MLModel' did not run to completion. It is not usable.  'COMPLETED' - The evaluation process completed successfully.  'DELETED' - The 'Evaluation'
--- is marked as deleted. It is not usable.
-eStatus :: Lens' Evaluation (Maybe EntityStatus)
-eStatus = lens _eStatus (\s a -> s { _eStatus = a })
-
-instance FromJSON Evaluation where
-    parseJSON = withObject "Evaluation" $ \o -> Evaluation
-        <$> o .:? "CreatedAt"
-        <*> o .:? "CreatedByIamUser"
-        <*> o .:? "EvaluationDataSourceId"
-        <*> o .:? "EvaluationId"
-        <*> o .:? "InputDataLocationS3"
-        <*> o .:? "LastUpdatedAt"
-        <*> o .:? "MLModelId"
-        <*> o .:? "Message"
-        <*> o .:? "Name"
-        <*> o .:? "PerformanceMetrics"
-        <*> o .:? "Status"
-
-instance ToJSON Evaluation where
-    toJSON Evaluation{..} = object
-        [ "EvaluationId"           .= _eEvaluationId
-        , "MLModelId"              .= _eMLModelId
-        , "EvaluationDataSourceId" .= _eEvaluationDataSourceId
-        , "InputDataLocationS3"    .= _eInputDataLocationS3
-        , "CreatedByIamUser"       .= _eCreatedByIamUser
-        , "CreatedAt"              .= _eCreatedAt
-        , "LastUpdatedAt"          .= _eLastUpdatedAt
-        , "Name"                   .= _eName
-        , "Status"                 .= _eStatus
-        , "PerformanceMetrics"     .= _ePerformanceMetrics
-        , "Message"                .= _eMessage
-        ]
-
-data RedshiftMetadata = RedshiftMetadata
-    { _rmDatabaseUserName :: Maybe Text
-    , _rmRedshiftDatabase :: Maybe RedshiftDatabase
-    , _rmSelectSqlQuery   :: Maybe Text
-    } deriving (Eq, Read, Show)
-
--- | 'RedshiftMetadata' constructor.
---
--- The fields accessible through corresponding lenses are:
---
--- * 'rmDatabaseUserName' @::@ 'Maybe' 'Text'
---
--- * 'rmRedshiftDatabase' @::@ 'Maybe' 'RedshiftDatabase'
---
--- * 'rmSelectSqlQuery' @::@ 'Maybe' 'Text'
---
-redshiftMetadata :: RedshiftMetadata
-redshiftMetadata = RedshiftMetadata
-    { _rmRedshiftDatabase = Nothing
-    , _rmDatabaseUserName = Nothing
-    , _rmSelectSqlQuery   = Nothing
-    }
-
-rmDatabaseUserName :: Lens' RedshiftMetadata (Maybe Text)
-rmDatabaseUserName =
-    lens _rmDatabaseUserName (\s a -> s { _rmDatabaseUserName = a })
-
-rmRedshiftDatabase :: Lens' RedshiftMetadata (Maybe RedshiftDatabase)
-rmRedshiftDatabase =
-    lens _rmRedshiftDatabase (\s a -> s { _rmRedshiftDatabase = a })
-
--- | The SQL query that is specified during 'CreateDataSourceFromRedshift'. Returns
--- only if 'Verbose' is true in GetDataSourceInput.
-rmSelectSqlQuery :: Lens' RedshiftMetadata (Maybe Text)
-rmSelectSqlQuery = lens _rmSelectSqlQuery (\s a -> s { _rmSelectSqlQuery = a })
-
-instance FromJSON RedshiftMetadata where
-    parseJSON = withObject "RedshiftMetadata" $ \o -> RedshiftMetadata
-        <$> o .:? "DatabaseUserName"
-        <*> o .:? "RedshiftDatabase"
-        <*> o .:? "SelectSqlQuery"
-
-instance ToJSON RedshiftMetadata where
-    toJSON RedshiftMetadata{..} = object
-        [ "RedshiftDatabase" .= _rmRedshiftDatabase
-        , "DatabaseUserName" .= _rmDatabaseUserName
-        , "SelectSqlQuery"   .= _rmSelectSqlQuery
-        ]
-
-data MLModelType
-    = Binary     -- ^ BINARY
-    | Multiclass -- ^ MULTICLASS
-    | Regression -- ^ REGRESSION
-      deriving (Eq, Ord, Read, Show, Generic, Enum)
-
-instance Hashable MLModelType
-
-instance FromText MLModelType where
-    parser = takeLowerText >>= \case
-        "binary"     -> pure Binary
-        "multiclass" -> pure Multiclass
-        "regression" -> pure Regression
-        e            -> fail $
-            "Failure parsing MLModelType from " ++ show e
-
-instance ToText MLModelType where
-    toText = \case
-        Binary     -> "BINARY"
-        Multiclass -> "MULTICLASS"
-        Regression -> "REGRESSION"
-
-instance ToByteString MLModelType
-instance ToHeader     MLModelType
-instance ToQuery      MLModelType
-
-instance FromJSON MLModelType where
-    parseJSON = parseJSONText "MLModelType"
-
-instance ToJSON MLModelType where
-    toJSON = toJSONText
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE TypeFamilies      #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Network.AWS.MachineLearning.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.MachineLearning.Types
+    (
+    -- * Service
+      MachineLearning
+
+    -- * Errors
+    , _InternalServerException
+    , _InvalidInputException
+    , _IdempotentParameterMismatchException
+    , _PredictorNotMountedException
+    , _ResourceNotFoundException
+    , _LimitExceededException
+
+    -- * Algorithm
+    , Algorithm (..)
+
+    -- * BatchPredictionFilterVariable
+    , BatchPredictionFilterVariable (..)
+
+    -- * DataSourceFilterVariable
+    , DataSourceFilterVariable (..)
+
+    -- * DetailsAttributes
+    , DetailsAttributes (..)
+
+    -- * EntityStatus
+    , EntityStatus (..)
+
+    -- * EvaluationFilterVariable
+    , EvaluationFilterVariable (..)
+
+    -- * MLModelFilterVariable
+    , MLModelFilterVariable (..)
+
+    -- * MLModelType
+    , MLModelType (..)
+
+    -- * RealtimeEndpointStatus
+    , RealtimeEndpointStatus (..)
+
+    -- * SortOrder
+    , SortOrder (..)
+
+    -- * BatchPrediction
+    , BatchPrediction
+    , batchPrediction
+    , bpStatus
+    , bpLastUpdatedAt
+    , bpCreatedAt
+    , bpInputDataLocationS3
+    , bpMLModelId
+    , bpBatchPredictionDataSourceId
+    , bpBatchPredictionId
+    , bpName
+    , bpCreatedByIAMUser
+    , bpMessage
+    , bpOutputURI
+
+    -- * DataSource
+    , DataSource
+    , dataSource
+    , dsStatus
+    , dsNumberOfFiles
+    , dsLastUpdatedAt
+    , dsCreatedAt
+    , dsRDSMetadata
+    , dsDataSourceId
+    , dsDataSizeInBytes
+    , dsName
+    , dsCreatedByIAMUser
+    , dsDataLocationS3
+    , dsComputeStatistics
+    , dsMessage
+    , dsRedshiftMetadata
+    , dsRoleARN
+    , dsDataRearrangement
+
+    -- * Evaluation
+    , Evaluation
+    , evaluation
+    , eStatus
+    , ePerformanceMetrics
+    , eLastUpdatedAt
+    , eCreatedAt
+    , eInputDataLocationS3
+    , eMLModelId
+    , eName
+    , eCreatedByIAMUser
+    , eMessage
+    , eEvaluationId
+    , eEvaluationDataSourceId
+
+    -- * MLModel
+    , MLModel
+    , mLModel
+    , mlmStatus
+    , mlmTrainingParameters
+    , mlmLastUpdatedAt
+    , mlmCreatedAt
+    , mlmScoreThresholdLastUpdatedAt
+    , mlmInputDataLocationS3
+    , mlmSizeInBytes
+    , mlmMLModelId
+    , mlmScoreThreshold
+    , mlmName
+    , mlmAlgorithm
+    , mlmCreatedByIAMUser
+    , mlmEndpointInfo
+    , mlmTrainingDataSourceId
+    , mlmMessage
+    , mlmMLModelType
+
+    -- * PerformanceMetrics
+    , PerformanceMetrics
+    , performanceMetrics
+    , pmProperties
+
+    -- * Prediction
+    , Prediction
+    , prediction
+    , pPredictedValue
+    , pPredictedLabel
+    , pPredictedScores
+    , pDetails
+
+    -- * RDSDataSpec
+    , RDSDataSpec
+    , rdsDataSpec
+    , rdsdsDataSchemaURI
+    , rdsdsDataSchema
+    , rdsdsDataRearrangement
+    , rdsdsDatabaseInformation
+    , rdsdsSelectSqlQuery
+    , rdsdsDatabaseCredentials
+    , rdsdsS3StagingLocation
+    , rdsdsResourceRole
+    , rdsdsServiceRole
+    , rdsdsSubnetId
+    , rdsdsSecurityGroupIds
+
+    -- * RDSDatabase
+    , RDSDatabase
+    , rdsDatabase
+    , rdsdInstanceIdentifier
+    , rdsdDatabaseName
+
+    -- * RDSDatabaseCredentials
+    , RDSDatabaseCredentials
+    , rdsDatabaseCredentials
+    , rdsdcUsername
+    , rdsdcPassword
+
+    -- * RDSMetadata
+    , RDSMetadata
+    , rdsMetadata
+    , rmSelectSqlQuery
+    , rmDataPipelineId
+    , rmDatabase
+    , rmDatabaseUserName
+    , rmResourceRole
+    , rmServiceRole
+
+    -- * RealtimeEndpointInfo
+    , RealtimeEndpointInfo
+    , realtimeEndpointInfo
+    , reiCreatedAt
+    , reiEndpointURL
+    , reiEndpointStatus
+    , reiPeakRequestsPerSecond
+
+    -- * RedshiftDataSpec
+    , RedshiftDataSpec
+    , redshiftDataSpec
+    , rDataSchemaURI
+    , rDataSchema
+    , rDataRearrangement
+    , rDatabaseInformation
+    , rSelectSqlQuery
+    , rDatabaseCredentials
+    , rS3StagingLocation
+
+    -- * RedshiftDatabase
+    , RedshiftDatabase
+    , redshiftDatabase
+    , rdDatabaseName
+    , rdClusterIdentifier
+
+    -- * RedshiftDatabaseCredentials
+    , RedshiftDatabaseCredentials
+    , redshiftDatabaseCredentials
+    , rdcUsername
+    , rdcPassword
+
+    -- * RedshiftMetadata
+    , RedshiftMetadata
+    , redshiftMetadata
+    , redSelectSqlQuery
+    , redRedshiftDatabase
+    , redDatabaseUserName
+
+    -- * S3DataSpec
+    , S3DataSpec
+    , s3DataSpec
+    , sdsDataSchema
+    , sdsDataSchemaLocationS3
+    , sdsDataRearrangement
+    , sdsDataLocationS3
+    ) where
+
+import           Network.AWS.MachineLearning.Types.Product
+import           Network.AWS.MachineLearning.Types.Sum
+import           Network.AWS.Prelude
+import           Network.AWS.Sign.V4
+
+-- | Version @2014-12-12@ of the Amazon Machine Learning SDK.
+data MachineLearning
+
+instance AWSService MachineLearning where
+    type Sg MachineLearning = V4
+    service = const svc
+      where
+        svc =
+            Service
+            { _svcAbbrev = "MachineLearning"
+            , _svcPrefix = "machinelearning"
+            , _svcVersion = "2014-12-12"
+            , _svcEndpoint = defaultEndpoint svc
+            , _svcTimeout = Just 70
+            , _svcStatus = statusSuccess
+            , _svcError = parseJSONError
+            , _svcRetry = retry
+            }
+        retry =
+            Exponential
+            { _retryBase = 5.0e-2
+            , _retryGrowth = 2
+            , _retryAttempts = 5
+            , _retryCheck = check
+            }
+        check e
+          | has (hasCode "ThrottlingException" . hasStatus 400) e =
+              Just "throttling_exception"
+          | has (hasCode "Throttling" . hasStatus 400) e = Just "throttling"
+          | has (hasStatus 503) e = Just "service_unavailable"
+          | has (hasStatus 500) e = Just "general_server_error"
+          | has (hasStatus 509) e = Just "limit_exceeded"
+          | otherwise = Nothing
+
+-- | An error on the server occurred when trying to process a request.
+_InternalServerException :: AsError a => Getting (First ServiceError) a ServiceError
+_InternalServerException =
+    _ServiceError . hasStatus 500 . hasCode "InternalServerException"
+
+-- | An error on the client occurred. Typically, the cause is an invalid
+-- input value.
+_InvalidInputException :: AsError a => Getting (First ServiceError) a ServiceError
+_InvalidInputException =
+    _ServiceError . hasStatus 400 . hasCode "InvalidInputException"
+
+-- | A second request to use or change an object was not allowed. This can
+-- result from retrying a request using a parameter that was not present in
+-- the original request.
+_IdempotentParameterMismatchException :: AsError a => Getting (First ServiceError) a ServiceError
+_IdempotentParameterMismatchException =
+    _ServiceError .
+    hasStatus 400 . hasCode "IdempotentParameterMismatchException"
+
+-- | The exception is thrown when a predict request is made to an unmounted
+-- 'MLModel'.
+_PredictorNotMountedException :: AsError a => Getting (First ServiceError) a ServiceError
+_PredictorNotMountedException =
+    _ServiceError . hasStatus 400 . hasCode "PredictorNotMountedException"
+
+-- | A specified resource cannot be located.
+_ResourceNotFoundException :: AsError a => Getting (First ServiceError) a ServiceError
+_ResourceNotFoundException =
+    _ServiceError . hasStatus 404 . hasCode "ResourceNotFoundException"
+
+-- | The subscriber exceeded the maximum number of operations. This exception
+-- can occur when listing objects such as 'DataSource'.
+_LimitExceededException :: AsError a => Getting (First ServiceError) a ServiceError
+_LimitExceededException =
+    _ServiceError . hasStatus 417 . hasCode "LimitExceededException"
diff --git a/gen/Network/AWS/MachineLearning/Types/Product.hs b/gen/Network/AWS/MachineLearning/Types/Product.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/AWS/MachineLearning/Types/Product.hs
@@ -0,0 +1,1512 @@
+{-# 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.MachineLearning.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.MachineLearning.Types.Product where
+
+import           Network.AWS.MachineLearning.Types.Sum
+import           Network.AWS.Prelude
+
+-- | Represents the output of GetBatchPrediction operation.
+--
+-- The content consists of the detailed metadata, the status, and the data
+-- file information of a /Batch Prediction/.
+--
+-- /See:/ 'batchPrediction' smart constructor.
+data BatchPrediction = BatchPrediction'
+    { _bpStatus                      :: !(Maybe EntityStatus)
+    , _bpLastUpdatedAt               :: !(Maybe POSIX)
+    , _bpCreatedAt                   :: !(Maybe POSIX)
+    , _bpInputDataLocationS3         :: !(Maybe Text)
+    , _bpMLModelId                   :: !(Maybe Text)
+    , _bpBatchPredictionDataSourceId :: !(Maybe Text)
+    , _bpBatchPredictionId           :: !(Maybe Text)
+    , _bpName                        :: !(Maybe Text)
+    , _bpCreatedByIAMUser            :: !(Maybe Text)
+    , _bpMessage                     :: !(Maybe Text)
+    , _bpOutputURI                   :: !(Maybe Text)
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'BatchPrediction' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'bpStatus'
+--
+-- * 'bpLastUpdatedAt'
+--
+-- * 'bpCreatedAt'
+--
+-- * 'bpInputDataLocationS3'
+--
+-- * 'bpMLModelId'
+--
+-- * 'bpBatchPredictionDataSourceId'
+--
+-- * 'bpBatchPredictionId'
+--
+-- * 'bpName'
+--
+-- * 'bpCreatedByIAMUser'
+--
+-- * 'bpMessage'
+--
+-- * 'bpOutputURI'
+batchPrediction
+    :: BatchPrediction
+batchPrediction =
+    BatchPrediction'
+    { _bpStatus = Nothing
+    , _bpLastUpdatedAt = Nothing
+    , _bpCreatedAt = Nothing
+    , _bpInputDataLocationS3 = Nothing
+    , _bpMLModelId = Nothing
+    , _bpBatchPredictionDataSourceId = Nothing
+    , _bpBatchPredictionId = Nothing
+    , _bpName = Nothing
+    , _bpCreatedByIAMUser = Nothing
+    , _bpMessage = Nothing
+    , _bpOutputURI = Nothing
+    }
+
+-- | The status of the 'BatchPrediction'. This element can have one of the
+-- following values:
+--
+-- -   'PENDING' - Amazon Machine Learning (Amazon ML) submitted a request
+--     to generate predictions for a batch of observations.
+-- -   'INPROGRESS' - The process is underway.
+-- -   'FAILED' - The request to peform a batch prediction did not run to
+--     completion. It is not usable.
+-- -   'COMPLETED' - The batch prediction process completed successfully.
+-- -   'DELETED' - The 'BatchPrediction' is marked as deleted. It is not
+--     usable.
+bpStatus :: Lens' BatchPrediction (Maybe EntityStatus)
+bpStatus = lens _bpStatus (\ s a -> s{_bpStatus = a});
+
+-- | The time of the most recent edit to the 'BatchPrediction'. The time is
+-- expressed in epoch time.
+bpLastUpdatedAt :: Lens' BatchPrediction (Maybe UTCTime)
+bpLastUpdatedAt = lens _bpLastUpdatedAt (\ s a -> s{_bpLastUpdatedAt = a}) . mapping _Time;
+
+-- | The time that the 'BatchPrediction' was created. The time is expressed
+-- in epoch time.
+bpCreatedAt :: Lens' BatchPrediction (Maybe UTCTime)
+bpCreatedAt = lens _bpCreatedAt (\ s a -> s{_bpCreatedAt = a}) . mapping _Time;
+
+-- | The location of the data file or directory in Amazon Simple Storage
+-- Service (Amazon S3).
+bpInputDataLocationS3 :: Lens' BatchPrediction (Maybe Text)
+bpInputDataLocationS3 = lens _bpInputDataLocationS3 (\ s a -> s{_bpInputDataLocationS3 = a});
+
+-- | The ID of the 'MLModel' that generated predictions for the
+-- 'BatchPrediction' request.
+bpMLModelId :: Lens' BatchPrediction (Maybe Text)
+bpMLModelId = lens _bpMLModelId (\ s a -> s{_bpMLModelId = a});
+
+-- | The ID of the 'DataSource' that points to the group of observations to
+-- predict.
+bpBatchPredictionDataSourceId :: Lens' BatchPrediction (Maybe Text)
+bpBatchPredictionDataSourceId = lens _bpBatchPredictionDataSourceId (\ s a -> s{_bpBatchPredictionDataSourceId = a});
+
+-- | The ID assigned to the 'BatchPrediction' at creation. This value should
+-- be identical to the value of the 'BatchPredictionID' in the request.
+bpBatchPredictionId :: Lens' BatchPrediction (Maybe Text)
+bpBatchPredictionId = lens _bpBatchPredictionId (\ s a -> s{_bpBatchPredictionId = a});
+
+-- | A user-supplied name or description of the 'BatchPrediction'.
+bpName :: Lens' BatchPrediction (Maybe Text)
+bpName = lens _bpName (\ s a -> s{_bpName = a});
+
+-- | The AWS user account that invoked the 'BatchPrediction'. The account
+-- type can be either an AWS root account or an AWS Identity and Access
+-- Management (IAM) user account.
+bpCreatedByIAMUser :: Lens' BatchPrediction (Maybe Text)
+bpCreatedByIAMUser = lens _bpCreatedByIAMUser (\ s a -> s{_bpCreatedByIAMUser = a});
+
+-- | A description of the most recent details about processing the batch
+-- prediction request.
+bpMessage :: Lens' BatchPrediction (Maybe Text)
+bpMessage = lens _bpMessage (\ s a -> s{_bpMessage = a});
+
+-- | The location of an Amazon S3 bucket or directory to receive the
+-- operation results. The following substrings are not allowed in the s3
+-- key portion of the \"outputURI\" field: \':\', \'\/\/\', \'\/.\/\',
+-- \'\/..\/\'.
+bpOutputURI :: Lens' BatchPrediction (Maybe Text)
+bpOutputURI = lens _bpOutputURI (\ s a -> s{_bpOutputURI = a});
+
+instance FromJSON BatchPrediction where
+        parseJSON
+          = withObject "BatchPrediction"
+              (\ x ->
+                 BatchPrediction' <$>
+                   (x .:? "Status") <*> (x .:? "LastUpdatedAt") <*>
+                     (x .:? "CreatedAt")
+                     <*> (x .:? "InputDataLocationS3")
+                     <*> (x .:? "MLModelId")
+                     <*> (x .:? "BatchPredictionDataSourceId")
+                     <*> (x .:? "BatchPredictionId")
+                     <*> (x .:? "Name")
+                     <*> (x .:? "CreatedByIamUser")
+                     <*> (x .:? "Message")
+                     <*> (x .:? "OutputUri"))
+
+-- | Represents the output of the GetDataSource operation.
+--
+-- The content consists of the detailed metadata and data file information
+-- and the current status of the 'DataSource'.
+--
+-- /See:/ 'dataSource' smart constructor.
+data DataSource = DataSource'
+    { _dsStatus            :: !(Maybe EntityStatus)
+    , _dsNumberOfFiles     :: !(Maybe Integer)
+    , _dsLastUpdatedAt     :: !(Maybe POSIX)
+    , _dsCreatedAt         :: !(Maybe POSIX)
+    , _dsRDSMetadata       :: !(Maybe RDSMetadata)
+    , _dsDataSourceId      :: !(Maybe Text)
+    , _dsDataSizeInBytes   :: !(Maybe Integer)
+    , _dsName              :: !(Maybe Text)
+    , _dsCreatedByIAMUser  :: !(Maybe Text)
+    , _dsDataLocationS3    :: !(Maybe Text)
+    , _dsComputeStatistics :: !(Maybe Bool)
+    , _dsMessage           :: !(Maybe Text)
+    , _dsRedshiftMetadata  :: !(Maybe RedshiftMetadata)
+    , _dsRoleARN           :: !(Maybe Text)
+    , _dsDataRearrangement :: !(Maybe Text)
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'DataSource' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'dsStatus'
+--
+-- * 'dsNumberOfFiles'
+--
+-- * 'dsLastUpdatedAt'
+--
+-- * 'dsCreatedAt'
+--
+-- * 'dsRDSMetadata'
+--
+-- * 'dsDataSourceId'
+--
+-- * 'dsDataSizeInBytes'
+--
+-- * 'dsName'
+--
+-- * 'dsCreatedByIAMUser'
+--
+-- * 'dsDataLocationS3'
+--
+-- * 'dsComputeStatistics'
+--
+-- * 'dsMessage'
+--
+-- * 'dsRedshiftMetadata'
+--
+-- * 'dsRoleARN'
+--
+-- * 'dsDataRearrangement'
+dataSource
+    :: DataSource
+dataSource =
+    DataSource'
+    { _dsStatus = Nothing
+    , _dsNumberOfFiles = Nothing
+    , _dsLastUpdatedAt = Nothing
+    , _dsCreatedAt = Nothing
+    , _dsRDSMetadata = Nothing
+    , _dsDataSourceId = Nothing
+    , _dsDataSizeInBytes = Nothing
+    , _dsName = Nothing
+    , _dsCreatedByIAMUser = Nothing
+    , _dsDataLocationS3 = Nothing
+    , _dsComputeStatistics = Nothing
+    , _dsMessage = Nothing
+    , _dsRedshiftMetadata = Nothing
+    , _dsRoleARN = Nothing
+    , _dsDataRearrangement = Nothing
+    }
+
+-- | The current status of the 'DataSource'. This element can have one of the
+-- following values:
+--
+-- -   PENDING - Amazon Machine Learning (Amazon ML) submitted a request to
+--     create a 'DataSource'.
+-- -   INPROGRESS - The creation process is underway.
+-- -   FAILED - The request to create a 'DataSource' did not run to
+--     completion. It is not usable.
+-- -   COMPLETED - The creation process completed successfully.
+-- -   DELETED - The 'DataSource' is marked as deleted. It is not usable.
+dsStatus :: Lens' DataSource (Maybe EntityStatus)
+dsStatus = lens _dsStatus (\ s a -> s{_dsStatus = a});
+
+-- | The number of data files referenced by the 'DataSource'.
+dsNumberOfFiles :: Lens' DataSource (Maybe Integer)
+dsNumberOfFiles = lens _dsNumberOfFiles (\ s a -> s{_dsNumberOfFiles = a});
+
+-- | The time of the most recent edit to the 'BatchPrediction'. The time is
+-- expressed in epoch time.
+dsLastUpdatedAt :: Lens' DataSource (Maybe UTCTime)
+dsLastUpdatedAt = lens _dsLastUpdatedAt (\ s a -> s{_dsLastUpdatedAt = a}) . mapping _Time;
+
+-- | The time that the 'DataSource' was created. The time is expressed in
+-- epoch time.
+dsCreatedAt :: Lens' DataSource (Maybe UTCTime)
+dsCreatedAt = lens _dsCreatedAt (\ s a -> s{_dsCreatedAt = a}) . mapping _Time;
+
+-- | Undocumented member.
+dsRDSMetadata :: Lens' DataSource (Maybe RDSMetadata)
+dsRDSMetadata = lens _dsRDSMetadata (\ s a -> s{_dsRDSMetadata = a});
+
+-- | The ID that is assigned to the 'DataSource' during creation.
+dsDataSourceId :: Lens' DataSource (Maybe Text)
+dsDataSourceId = lens _dsDataSourceId (\ s a -> s{_dsDataSourceId = a});
+
+-- | The total number of observations contained in the data files that the
+-- 'DataSource' references.
+dsDataSizeInBytes :: Lens' DataSource (Maybe Integer)
+dsDataSizeInBytes = lens _dsDataSizeInBytes (\ s a -> s{_dsDataSizeInBytes = a});
+
+-- | A user-supplied name or description of the 'DataSource'.
+dsName :: Lens' DataSource (Maybe Text)
+dsName = lens _dsName (\ s a -> s{_dsName = a});
+
+-- | The AWS user account from which the 'DataSource' was created. The
+-- account type can be either an AWS root account or an AWS Identity and
+-- Access Management (IAM) user account.
+dsCreatedByIAMUser :: Lens' DataSource (Maybe Text)
+dsCreatedByIAMUser = lens _dsCreatedByIAMUser (\ s a -> s{_dsCreatedByIAMUser = a});
+
+-- | The location and name of the data in Amazon Simple Storage Service
+-- (Amazon S3) that is used by a 'DataSource'.
+dsDataLocationS3 :: Lens' DataSource (Maybe Text)
+dsDataLocationS3 = lens _dsDataLocationS3 (\ s a -> s{_dsDataLocationS3 = a});
+
+-- | The parameter is 'true' if statistics need to be generated from the
+-- observation data.
+dsComputeStatistics :: Lens' DataSource (Maybe Bool)
+dsComputeStatistics = lens _dsComputeStatistics (\ s a -> s{_dsComputeStatistics = a});
+
+-- | A description of the most recent details about creating the
+-- 'DataSource'.
+dsMessage :: Lens' DataSource (Maybe Text)
+dsMessage = lens _dsMessage (\ s a -> s{_dsMessage = a});
+
+-- | Undocumented member.
+dsRedshiftMetadata :: Lens' DataSource (Maybe RedshiftMetadata)
+dsRedshiftMetadata = lens _dsRedshiftMetadata (\ s a -> s{_dsRedshiftMetadata = a});
+
+-- | Undocumented member.
+dsRoleARN :: Lens' DataSource (Maybe Text)
+dsRoleARN = lens _dsRoleARN (\ s a -> s{_dsRoleARN = a});
+
+-- | A JSON string that represents the splitting requirement of a
+-- 'Datasource'.
+dsDataRearrangement :: Lens' DataSource (Maybe Text)
+dsDataRearrangement = lens _dsDataRearrangement (\ s a -> s{_dsDataRearrangement = a});
+
+instance FromJSON DataSource where
+        parseJSON
+          = withObject "DataSource"
+              (\ x ->
+                 DataSource' <$>
+                   (x .:? "Status") <*> (x .:? "NumberOfFiles") <*>
+                     (x .:? "LastUpdatedAt")
+                     <*> (x .:? "CreatedAt")
+                     <*> (x .:? "RDSMetadata")
+                     <*> (x .:? "DataSourceId")
+                     <*> (x .:? "DataSizeInBytes")
+                     <*> (x .:? "Name")
+                     <*> (x .:? "CreatedByIamUser")
+                     <*> (x .:? "DataLocationS3")
+                     <*> (x .:? "ComputeStatistics")
+                     <*> (x .:? "Message")
+                     <*> (x .:? "RedshiftMetadata")
+                     <*> (x .:? "RoleARN")
+                     <*> (x .:? "DataRearrangement"))
+
+-- | Represents the output of GetEvaluation operation.
+--
+-- The content consists of the detailed metadata and data file information
+-- and the current status of the 'Evaluation'.
+--
+-- /See:/ 'evaluation' smart constructor.
+data Evaluation = Evaluation'
+    { _eStatus                 :: !(Maybe EntityStatus)
+    , _ePerformanceMetrics     :: !(Maybe PerformanceMetrics)
+    , _eLastUpdatedAt          :: !(Maybe POSIX)
+    , _eCreatedAt              :: !(Maybe POSIX)
+    , _eInputDataLocationS3    :: !(Maybe Text)
+    , _eMLModelId              :: !(Maybe Text)
+    , _eName                   :: !(Maybe Text)
+    , _eCreatedByIAMUser       :: !(Maybe Text)
+    , _eMessage                :: !(Maybe Text)
+    , _eEvaluationId           :: !(Maybe Text)
+    , _eEvaluationDataSourceId :: !(Maybe Text)
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'Evaluation' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'eStatus'
+--
+-- * 'ePerformanceMetrics'
+--
+-- * 'eLastUpdatedAt'
+--
+-- * 'eCreatedAt'
+--
+-- * 'eInputDataLocationS3'
+--
+-- * 'eMLModelId'
+--
+-- * 'eName'
+--
+-- * 'eCreatedByIAMUser'
+--
+-- * 'eMessage'
+--
+-- * 'eEvaluationId'
+--
+-- * 'eEvaluationDataSourceId'
+evaluation
+    :: Evaluation
+evaluation =
+    Evaluation'
+    { _eStatus = Nothing
+    , _ePerformanceMetrics = Nothing
+    , _eLastUpdatedAt = Nothing
+    , _eCreatedAt = Nothing
+    , _eInputDataLocationS3 = Nothing
+    , _eMLModelId = Nothing
+    , _eName = Nothing
+    , _eCreatedByIAMUser = Nothing
+    , _eMessage = Nothing
+    , _eEvaluationId = Nothing
+    , _eEvaluationDataSourceId = Nothing
+    }
+
+-- | The status of the evaluation. This element can have one of the following
+-- values:
+--
+-- -   'PENDING' - Amazon Machine Learning (Amazon ML) submitted a request
+--     to evaluate an 'MLModel'.
+-- -   'INPROGRESS' - The evaluation is underway.
+-- -   'FAILED' - The request to evaluate an 'MLModel' did not run to
+--     completion. It is not usable.
+-- -   'COMPLETED' - The evaluation process completed successfully.
+-- -   'DELETED' - The 'Evaluation' is marked as deleted. It is not usable.
+eStatus :: Lens' Evaluation (Maybe EntityStatus)
+eStatus = lens _eStatus (\ s a -> s{_eStatus = a});
+
+-- | Measurements of how well the 'MLModel' performed, using observations
+-- referenced by the 'DataSource'. One of the following metrics is
+-- returned, based on the type of the MLModel:
+--
+-- -   BinaryAUC: A binary 'MLModel' uses the Area Under the Curve (AUC)
+--     technique to measure performance.
+--
+-- -   RegressionRMSE: A regression 'MLModel' uses the Root Mean Square
+--     Error (RMSE) technique to measure performance. RMSE measures the
+--     difference between predicted and actual values for a single
+--     variable.
+--
+-- -   MulticlassAvgFScore: A multiclass 'MLModel' uses the F1 score
+--     technique to measure performance.
+--
+-- For more information about performance metrics, please see the
+-- <http://docs.aws.amazon.com/machine-learning/latest/dg Amazon Machine Learning Developer Guide>.
+ePerformanceMetrics :: Lens' Evaluation (Maybe PerformanceMetrics)
+ePerformanceMetrics = lens _ePerformanceMetrics (\ s a -> s{_ePerformanceMetrics = a});
+
+-- | The time of the most recent edit to the 'Evaluation'. The time is
+-- expressed in epoch time.
+eLastUpdatedAt :: Lens' Evaluation (Maybe UTCTime)
+eLastUpdatedAt = lens _eLastUpdatedAt (\ s a -> s{_eLastUpdatedAt = a}) . mapping _Time;
+
+-- | The time that the 'Evaluation' was created. The time is expressed in
+-- epoch time.
+eCreatedAt :: Lens' Evaluation (Maybe UTCTime)
+eCreatedAt = lens _eCreatedAt (\ s a -> s{_eCreatedAt = a}) . mapping _Time;
+
+-- | The location and name of the data in Amazon Simple Storage Server
+-- (Amazon S3) that is used in the evaluation.
+eInputDataLocationS3 :: Lens' Evaluation (Maybe Text)
+eInputDataLocationS3 = lens _eInputDataLocationS3 (\ s a -> s{_eInputDataLocationS3 = a});
+
+-- | The ID of the 'MLModel' that is the focus of the evaluation.
+eMLModelId :: Lens' Evaluation (Maybe Text)
+eMLModelId = lens _eMLModelId (\ s a -> s{_eMLModelId = a});
+
+-- | A user-supplied name or description of the 'Evaluation'.
+eName :: Lens' Evaluation (Maybe Text)
+eName = lens _eName (\ s a -> s{_eName = a});
+
+-- | The AWS user account that invoked the evaluation. The account type can
+-- be either an AWS root account or an AWS Identity and Access Management
+-- (IAM) user account.
+eCreatedByIAMUser :: Lens' Evaluation (Maybe Text)
+eCreatedByIAMUser = lens _eCreatedByIAMUser (\ s a -> s{_eCreatedByIAMUser = a});
+
+-- | A description of the most recent details about evaluating the 'MLModel'.
+eMessage :: Lens' Evaluation (Maybe Text)
+eMessage = lens _eMessage (\ s a -> s{_eMessage = a});
+
+-- | The ID that is assigned to the 'Evaluation' at creation.
+eEvaluationId :: Lens' Evaluation (Maybe Text)
+eEvaluationId = lens _eEvaluationId (\ s a -> s{_eEvaluationId = a});
+
+-- | The ID of the 'DataSource' that is used to evaluate the 'MLModel'.
+eEvaluationDataSourceId :: Lens' Evaluation (Maybe Text)
+eEvaluationDataSourceId = lens _eEvaluationDataSourceId (\ s a -> s{_eEvaluationDataSourceId = a});
+
+instance FromJSON Evaluation where
+        parseJSON
+          = withObject "Evaluation"
+              (\ x ->
+                 Evaluation' <$>
+                   (x .:? "Status") <*> (x .:? "PerformanceMetrics") <*>
+                     (x .:? "LastUpdatedAt")
+                     <*> (x .:? "CreatedAt")
+                     <*> (x .:? "InputDataLocationS3")
+                     <*> (x .:? "MLModelId")
+                     <*> (x .:? "Name")
+                     <*> (x .:? "CreatedByIamUser")
+                     <*> (x .:? "Message")
+                     <*> (x .:? "EvaluationId")
+                     <*> (x .:? "EvaluationDataSourceId"))
+
+-- | Represents the output of a GetMLModel operation.
+--
+-- The content consists of the detailed metadata and the current status of
+-- the 'MLModel'.
+--
+-- /See:/ 'mLModel' smart constructor.
+data MLModel = MLModel'
+    { _mlmStatus                      :: !(Maybe EntityStatus)
+    , _mlmTrainingParameters          :: !(Maybe (Map Text Text))
+    , _mlmLastUpdatedAt               :: !(Maybe POSIX)
+    , _mlmCreatedAt                   :: !(Maybe POSIX)
+    , _mlmScoreThresholdLastUpdatedAt :: !(Maybe POSIX)
+    , _mlmInputDataLocationS3         :: !(Maybe Text)
+    , _mlmSizeInBytes                 :: !(Maybe Integer)
+    , _mlmMLModelId                   :: !(Maybe Text)
+    , _mlmScoreThreshold              :: !(Maybe Double)
+    , _mlmName                        :: !(Maybe Text)
+    , _mlmAlgorithm                   :: !(Maybe Algorithm)
+    , _mlmCreatedByIAMUser            :: !(Maybe Text)
+    , _mlmEndpointInfo                :: !(Maybe RealtimeEndpointInfo)
+    , _mlmTrainingDataSourceId        :: !(Maybe Text)
+    , _mlmMessage                     :: !(Maybe Text)
+    , _mlmMLModelType                 :: !(Maybe MLModelType)
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'MLModel' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'mlmStatus'
+--
+-- * 'mlmTrainingParameters'
+--
+-- * 'mlmLastUpdatedAt'
+--
+-- * 'mlmCreatedAt'
+--
+-- * 'mlmScoreThresholdLastUpdatedAt'
+--
+-- * 'mlmInputDataLocationS3'
+--
+-- * 'mlmSizeInBytes'
+--
+-- * 'mlmMLModelId'
+--
+-- * 'mlmScoreThreshold'
+--
+-- * 'mlmName'
+--
+-- * 'mlmAlgorithm'
+--
+-- * 'mlmCreatedByIAMUser'
+--
+-- * 'mlmEndpointInfo'
+--
+-- * 'mlmTrainingDataSourceId'
+--
+-- * 'mlmMessage'
+--
+-- * 'mlmMLModelType'
+mLModel
+    :: MLModel
+mLModel =
+    MLModel'
+    { _mlmStatus = Nothing
+    , _mlmTrainingParameters = Nothing
+    , _mlmLastUpdatedAt = Nothing
+    , _mlmCreatedAt = Nothing
+    , _mlmScoreThresholdLastUpdatedAt = Nothing
+    , _mlmInputDataLocationS3 = Nothing
+    , _mlmSizeInBytes = Nothing
+    , _mlmMLModelId = Nothing
+    , _mlmScoreThreshold = Nothing
+    , _mlmName = Nothing
+    , _mlmAlgorithm = Nothing
+    , _mlmCreatedByIAMUser = Nothing
+    , _mlmEndpointInfo = Nothing
+    , _mlmTrainingDataSourceId = Nothing
+    , _mlmMessage = Nothing
+    , _mlmMLModelType = Nothing
+    }
+
+-- | The current status of an 'MLModel'. This element can have one of the
+-- following values:
+--
+-- -   PENDING - Amazon Machine Learning (Amazon ML) submitted a request to
+--     create an 'MLModel'.
+-- -   INPROGRESS - The creation process is underway.
+-- -   FAILED - The request to create an 'MLModel' did not run to
+--     completion. It is not usable.
+-- -   COMPLETED - The creation process completed successfully.
+-- -   DELETED - The 'MLModel' is marked as deleted. It is not usable.
+mlmStatus :: Lens' MLModel (Maybe EntityStatus)
+mlmStatus = lens _mlmStatus (\ s a -> s{_mlmStatus = a});
+
+-- | A list of the training parameters in the 'MLModel'. The list is
+-- implemented as a map of key\/value pairs.
+--
+-- The following is the current set of training parameters:
+--
+-- -   'sgd.l1RegularizationAmount' - Coefficient regularization L1 norm.
+--     It controls overfitting the data by penalizing large coefficients.
+--     This tends to drive coefficients to zero, resulting in a sparse
+--     feature set. If you use this parameter, specify a small value, such
+--     as 1.0E-04 or 1.0E-08.
+--
+--     The value is a double that ranges from 0 to MAX_DOUBLE. The default
+--     is not to use L1 normalization. The parameter cannot be used when
+--     'L2' is specified. Use this parameter sparingly.
+--
+-- -   'sgd.l2RegularizationAmount' - Coefficient regularization L2 norm.
+--     It controls overfitting the data by penalizing large coefficients.
+--     This tends to drive coefficients to small, nonzero values. If you
+--     use this parameter, specify a small value, such as 1.0E-04 or
+--     1.0E-08.
+--
+--     The valus is a double that ranges from 0 to MAX_DOUBLE. The default
+--     is not to use L2 normalization. This cannot be used when 'L1' is
+--     specified. Use this parameter sparingly.
+--
+-- -   'sgd.maxPasses' - Number of times that the training process
+--     traverses the observations to build the 'MLModel'. The value is an
+--     integer that ranges from 1 to 10000. The default value is 10.
+--
+-- -   'sgd.maxMLModelSizeInBytes' - Maximum allowed size of the model.
+--     Depending on the input data, the model size might affect
+--     performance.
+--
+--     The value is an integer that ranges from 100000 to 2147483648. The
+--     default value is 33554432.
+--
+mlmTrainingParameters :: Lens' MLModel (HashMap Text Text)
+mlmTrainingParameters = lens _mlmTrainingParameters (\ s a -> s{_mlmTrainingParameters = a}) . _Default . _Map;
+
+-- | The time of the most recent edit to the 'MLModel'. The time is expressed
+-- in epoch time.
+mlmLastUpdatedAt :: Lens' MLModel (Maybe UTCTime)
+mlmLastUpdatedAt = lens _mlmLastUpdatedAt (\ s a -> s{_mlmLastUpdatedAt = a}) . mapping _Time;
+
+-- | The time that the 'MLModel' was created. The time is expressed in epoch
+-- time.
+mlmCreatedAt :: Lens' MLModel (Maybe UTCTime)
+mlmCreatedAt = lens _mlmCreatedAt (\ s a -> s{_mlmCreatedAt = a}) . mapping _Time;
+
+-- | The time of the most recent edit to the 'ScoreThreshold'. The time is
+-- expressed in epoch time.
+mlmScoreThresholdLastUpdatedAt :: Lens' MLModel (Maybe UTCTime)
+mlmScoreThresholdLastUpdatedAt = lens _mlmScoreThresholdLastUpdatedAt (\ s a -> s{_mlmScoreThresholdLastUpdatedAt = a}) . mapping _Time;
+
+-- | The location of the data file or directory in Amazon Simple Storage
+-- Service (Amazon S3).
+mlmInputDataLocationS3 :: Lens' MLModel (Maybe Text)
+mlmInputDataLocationS3 = lens _mlmInputDataLocationS3 (\ s a -> s{_mlmInputDataLocationS3 = a});
+
+-- | Undocumented member.
+mlmSizeInBytes :: Lens' MLModel (Maybe Integer)
+mlmSizeInBytes = lens _mlmSizeInBytes (\ s a -> s{_mlmSizeInBytes = a});
+
+-- | The ID assigned to the 'MLModel' at creation.
+mlmMLModelId :: Lens' MLModel (Maybe Text)
+mlmMLModelId = lens _mlmMLModelId (\ s a -> s{_mlmMLModelId = a});
+
+-- | Undocumented member.
+mlmScoreThreshold :: Lens' MLModel (Maybe Double)
+mlmScoreThreshold = lens _mlmScoreThreshold (\ s a -> s{_mlmScoreThreshold = a});
+
+-- | A user-supplied name or description of the 'MLModel'.
+mlmName :: Lens' MLModel (Maybe Text)
+mlmName = lens _mlmName (\ s a -> s{_mlmName = a});
+
+-- | The algorithm used to train the 'MLModel'. The following algorithm is
+-- supported:
+--
+-- -   SGD -- Stochastic gradient descent. The goal of SGD is to minimize
+--     the gradient of the loss function.
+mlmAlgorithm :: Lens' MLModel (Maybe Algorithm)
+mlmAlgorithm = lens _mlmAlgorithm (\ s a -> s{_mlmAlgorithm = a});
+
+-- | The AWS user account from which the 'MLModel' was created. The account
+-- type can be either an AWS root account or an AWS Identity and Access
+-- Management (IAM) user account.
+mlmCreatedByIAMUser :: Lens' MLModel (Maybe Text)
+mlmCreatedByIAMUser = lens _mlmCreatedByIAMUser (\ s a -> s{_mlmCreatedByIAMUser = a});
+
+-- | The current endpoint of the 'MLModel'.
+mlmEndpointInfo :: Lens' MLModel (Maybe RealtimeEndpointInfo)
+mlmEndpointInfo = lens _mlmEndpointInfo (\ s a -> s{_mlmEndpointInfo = a});
+
+-- | The ID of the training 'DataSource'. The CreateMLModel operation uses
+-- the 'TrainingDataSourceId'.
+mlmTrainingDataSourceId :: Lens' MLModel (Maybe Text)
+mlmTrainingDataSourceId = lens _mlmTrainingDataSourceId (\ s a -> s{_mlmTrainingDataSourceId = a});
+
+-- | A description of the most recent details about accessing the 'MLModel'.
+mlmMessage :: Lens' MLModel (Maybe Text)
+mlmMessage = lens _mlmMessage (\ s a -> s{_mlmMessage = a});
+
+-- | Identifies the 'MLModel' category. The following are the available
+-- types:
+--
+-- -   REGRESSION - Produces a numeric result. For example, \"What listing
+--     price should a house have?\".
+-- -   BINARY - Produces one of two possible results. For example, \"Is
+--     this a child-friendly web site?\".
+-- -   MULTICLASS - Produces more than two possible results. For example,
+--     \"Is this a HIGH, LOW or MEDIUM risk trade?\".
+mlmMLModelType :: Lens' MLModel (Maybe MLModelType)
+mlmMLModelType = lens _mlmMLModelType (\ s a -> s{_mlmMLModelType = a});
+
+instance FromJSON MLModel where
+        parseJSON
+          = withObject "MLModel"
+              (\ x ->
+                 MLModel' <$>
+                   (x .:? "Status") <*>
+                     (x .:? "TrainingParameters" .!= mempty)
+                     <*> (x .:? "LastUpdatedAt")
+                     <*> (x .:? "CreatedAt")
+                     <*> (x .:? "ScoreThresholdLastUpdatedAt")
+                     <*> (x .:? "InputDataLocationS3")
+                     <*> (x .:? "SizeInBytes")
+                     <*> (x .:? "MLModelId")
+                     <*> (x .:? "ScoreThreshold")
+                     <*> (x .:? "Name")
+                     <*> (x .:? "Algorithm")
+                     <*> (x .:? "CreatedByIamUser")
+                     <*> (x .:? "EndpointInfo")
+                     <*> (x .:? "TrainingDataSourceId")
+                     <*> (x .:? "Message")
+                     <*> (x .:? "MLModelType"))
+
+-- | Measurements of how well the 'MLModel' performed on known observations.
+-- One of the following metrics is returned, based on the type of the
+-- 'MLModel':
+--
+-- -   BinaryAUC: The binary 'MLModel' uses the Area Under the Curve (AUC)
+--     technique to measure performance.
+--
+-- -   RegressionRMSE: The regression 'MLModel' uses the Root Mean Square
+--     Error (RMSE) technique to measure performance. RMSE measures the
+--     difference between predicted and actual values for a single
+--     variable.
+--
+-- -   MulticlassAvgFScore: The multiclass 'MLModel' uses the F1 score
+--     technique to measure performance.
+--
+-- For more information about performance metrics, please see the
+-- <http://docs.aws.amazon.com/machine-learning/latest/dg Amazon Machine Learning Developer Guide>.
+--
+-- /See:/ 'performanceMetrics' smart constructor.
+newtype PerformanceMetrics = PerformanceMetrics'
+    { _pmProperties :: Maybe (Map Text Text)
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'PerformanceMetrics' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'pmProperties'
+performanceMetrics
+    :: PerformanceMetrics
+performanceMetrics =
+    PerformanceMetrics'
+    { _pmProperties = Nothing
+    }
+
+-- | Undocumented member.
+pmProperties :: Lens' PerformanceMetrics (HashMap Text Text)
+pmProperties = lens _pmProperties (\ s a -> s{_pmProperties = a}) . _Default . _Map;
+
+instance FromJSON PerformanceMetrics where
+        parseJSON
+          = withObject "PerformanceMetrics"
+              (\ x ->
+                 PerformanceMetrics' <$>
+                   (x .:? "Properties" .!= mempty))
+
+-- | The output from a 'Predict' operation:
+--
+-- -   'Details' - Contains the following attributes:
+--     DetailsAttributes.PREDICTIVE_MODEL_TYPE - REGRESSION | BINARY |
+--     MULTICLASS DetailsAttributes.ALGORITHM - SGD
+--
+-- -   'PredictedLabel' - Present for either a BINARY or MULTICLASS
+--     'MLModel' request.
+--
+-- -   'PredictedScores' - Contains the raw classification score
+--     corresponding to each label.
+--
+-- -   'PredictedValue' - Present for a REGRESSION 'MLModel' request.
+--
+--
+-- /See:/ 'prediction' smart constructor.
+data Prediction = Prediction'
+    { _pPredictedValue  :: !(Maybe Double)
+    , _pPredictedLabel  :: !(Maybe Text)
+    , _pPredictedScores :: !(Maybe (Map Text Double))
+    , _pDetails         :: !(Maybe (Map DetailsAttributes Text))
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'Prediction' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'pPredictedValue'
+--
+-- * 'pPredictedLabel'
+--
+-- * 'pPredictedScores'
+--
+-- * 'pDetails'
+prediction
+    :: Prediction
+prediction =
+    Prediction'
+    { _pPredictedValue = Nothing
+    , _pPredictedLabel = Nothing
+    , _pPredictedScores = Nothing
+    , _pDetails = Nothing
+    }
+
+-- | The prediction value for REGRESSION 'MLModel'.
+pPredictedValue :: Lens' Prediction (Maybe Double)
+pPredictedValue = lens _pPredictedValue (\ s a -> s{_pPredictedValue = a});
+
+-- | The prediction label for either a BINARY or MULTICLASS 'MLModel'.
+pPredictedLabel :: Lens' Prediction (Maybe Text)
+pPredictedLabel = lens _pPredictedLabel (\ s a -> s{_pPredictedLabel = a});
+
+-- | Undocumented member.
+pPredictedScores :: Lens' Prediction (HashMap Text Double)
+pPredictedScores = lens _pPredictedScores (\ s a -> s{_pPredictedScores = a}) . _Default . _Map;
+
+-- | Undocumented member.
+pDetails :: Lens' Prediction (HashMap DetailsAttributes Text)
+pDetails = lens _pDetails (\ s a -> s{_pDetails = a}) . _Default . _Map;
+
+instance FromJSON Prediction where
+        parseJSON
+          = withObject "Prediction"
+              (\ x ->
+                 Prediction' <$>
+                   (x .:? "predictedValue") <*> (x .:? "predictedLabel")
+                     <*> (x .:? "predictedScores" .!= mempty)
+                     <*> (x .:? "details" .!= mempty))
+
+-- | The data specification of an Amazon Relational Database Service (Amazon
+-- RDS) 'DataSource'.
+--
+-- /See:/ 'rdsDataSpec' smart constructor.
+data RDSDataSpec = RDSDataSpec'
+    { _rdsdsDataSchemaURI       :: !(Maybe Text)
+    , _rdsdsDataSchema          :: !(Maybe Text)
+    , _rdsdsDataRearrangement   :: !(Maybe Text)
+    , _rdsdsDatabaseInformation :: !RDSDatabase
+    , _rdsdsSelectSqlQuery      :: !Text
+    , _rdsdsDatabaseCredentials :: !RDSDatabaseCredentials
+    , _rdsdsS3StagingLocation   :: !Text
+    , _rdsdsResourceRole        :: !Text
+    , _rdsdsServiceRole         :: !Text
+    , _rdsdsSubnetId            :: !Text
+    , _rdsdsSecurityGroupIds    :: ![Text]
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'RDSDataSpec' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'rdsdsDataSchemaURI'
+--
+-- * 'rdsdsDataSchema'
+--
+-- * 'rdsdsDataRearrangement'
+--
+-- * 'rdsdsDatabaseInformation'
+--
+-- * 'rdsdsSelectSqlQuery'
+--
+-- * 'rdsdsDatabaseCredentials'
+--
+-- * 'rdsdsS3StagingLocation'
+--
+-- * 'rdsdsResourceRole'
+--
+-- * 'rdsdsServiceRole'
+--
+-- * 'rdsdsSubnetId'
+--
+-- * 'rdsdsSecurityGroupIds'
+rdsDataSpec
+    :: RDSDatabase -- ^ 'rdsdsDatabaseInformation'
+    -> Text -- ^ 'rdsdsSelectSqlQuery'
+    -> RDSDatabaseCredentials -- ^ 'rdsdsDatabaseCredentials'
+    -> Text -- ^ 'rdsdsS3StagingLocation'
+    -> Text -- ^ 'rdsdsResourceRole'
+    -> Text -- ^ 'rdsdsServiceRole'
+    -> Text -- ^ 'rdsdsSubnetId'
+    -> RDSDataSpec
+rdsDataSpec pDatabaseInformation_ pSelectSqlQuery_ pDatabaseCredentials_ pS3StagingLocation_ pResourceRole_ pServiceRole_ pSubnetId_ =
+    RDSDataSpec'
+    { _rdsdsDataSchemaURI = Nothing
+    , _rdsdsDataSchema = Nothing
+    , _rdsdsDataRearrangement = Nothing
+    , _rdsdsDatabaseInformation = pDatabaseInformation_
+    , _rdsdsSelectSqlQuery = pSelectSqlQuery_
+    , _rdsdsDatabaseCredentials = pDatabaseCredentials_
+    , _rdsdsS3StagingLocation = pS3StagingLocation_
+    , _rdsdsResourceRole = pResourceRole_
+    , _rdsdsServiceRole = pServiceRole_
+    , _rdsdsSubnetId = pSubnetId_
+    , _rdsdsSecurityGroupIds = mempty
+    }
+
+-- | The Amazon S3 location of the 'DataSchema'.
+rdsdsDataSchemaURI :: Lens' RDSDataSpec (Maybe Text)
+rdsdsDataSchemaURI = lens _rdsdsDataSchemaURI (\ s a -> s{_rdsdsDataSchemaURI = a});
+
+-- | A JSON string that represents the schema. This is not required if
+-- 'DataSchemaUri' is specified.
+rdsdsDataSchema :: Lens' RDSDataSpec (Maybe Text)
+rdsdsDataSchema = lens _rdsdsDataSchema (\ s a -> s{_rdsdsDataSchema = a});
+
+-- | DataRearrangement - A JSON string that represents the splitting
+-- requirement of a 'DataSource'.
+--
+-- Sample -
+-- ' \"{\\\"randomSeed\\\":\\\"some-random-seed\\\", \\\"splitting\\\":{\\\"percentBegin\\\":10,\\\"percentEnd\\\":60}}\"'
+rdsdsDataRearrangement :: Lens' RDSDataSpec (Maybe Text)
+rdsdsDataRearrangement = lens _rdsdsDataRearrangement (\ s a -> s{_rdsdsDataRearrangement = a});
+
+-- | Describes the 'DatabaseName' and 'InstanceIdentifier' of an an Amazon
+-- RDS database.
+rdsdsDatabaseInformation :: Lens' RDSDataSpec RDSDatabase
+rdsdsDatabaseInformation = lens _rdsdsDatabaseInformation (\ s a -> s{_rdsdsDatabaseInformation = a});
+
+-- | The query that is used to retrieve the observation data for the
+-- 'DataSource'.
+rdsdsSelectSqlQuery :: Lens' RDSDataSpec Text
+rdsdsSelectSqlQuery = lens _rdsdsSelectSqlQuery (\ s a -> s{_rdsdsSelectSqlQuery = a});
+
+-- | The AWS Identity and Access Management (IAM) credentials that are used
+-- connect to the Amazon RDS database.
+rdsdsDatabaseCredentials :: Lens' RDSDataSpec RDSDatabaseCredentials
+rdsdsDatabaseCredentials = lens _rdsdsDatabaseCredentials (\ s a -> s{_rdsdsDatabaseCredentials = a});
+
+-- | The Amazon S3 location for staging Amazon RDS data. The data retrieved
+-- from Amazon RDS using 'SelectSqlQuery' is stored in this location.
+rdsdsS3StagingLocation :: Lens' RDSDataSpec Text
+rdsdsS3StagingLocation = lens _rdsdsS3StagingLocation (\ s a -> s{_rdsdsS3StagingLocation = a});
+
+-- | The role (DataPipelineDefaultResourceRole) assumed by an Amazon Elastic
+-- Compute Cloud (Amazon EC2) instance to carry out the copy operation from
+-- Amazon RDS to an Amazon S3 task. For more information, see
+-- <http://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-iam-roles.html Role templates>
+-- for data pipelines.
+rdsdsResourceRole :: Lens' RDSDataSpec Text
+rdsdsResourceRole = lens _rdsdsResourceRole (\ s a -> s{_rdsdsResourceRole = a});
+
+-- | The role (DataPipelineDefaultRole) assumed by AWS Data Pipeline service
+-- to monitor the progress of the copy task from Amazon RDS to Amazon S3.
+-- For more information, see
+-- <http://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-iam-roles.html Role templates>
+-- for data pipelines.
+rdsdsServiceRole :: Lens' RDSDataSpec Text
+rdsdsServiceRole = lens _rdsdsServiceRole (\ s a -> s{_rdsdsServiceRole = a});
+
+-- | The subnet ID to be used to access a VPC-based RDS DB instance. This
+-- attribute is used by Data Pipeline to carry out the copy task from
+-- Amazon RDS to Amazon S3.
+rdsdsSubnetId :: Lens' RDSDataSpec Text
+rdsdsSubnetId = lens _rdsdsSubnetId (\ s a -> s{_rdsdsSubnetId = a});
+
+-- | The security group IDs to be used to access a VPC-based RDS DB instance.
+-- Ensure that there are appropriate ingress rules set up to allow access
+-- to the RDS DB instance. This attribute is used by Data Pipeline to carry
+-- out the copy operation from Amazon RDS to an Amazon S3 task.
+rdsdsSecurityGroupIds :: Lens' RDSDataSpec [Text]
+rdsdsSecurityGroupIds = lens _rdsdsSecurityGroupIds (\ s a -> s{_rdsdsSecurityGroupIds = a}) . _Coerce;
+
+instance ToJSON RDSDataSpec where
+        toJSON RDSDataSpec'{..}
+          = object
+              ["DataSchemaUri" .= _rdsdsDataSchemaURI,
+               "DataSchema" .= _rdsdsDataSchema,
+               "DataRearrangement" .= _rdsdsDataRearrangement,
+               "DatabaseInformation" .= _rdsdsDatabaseInformation,
+               "SelectSqlQuery" .= _rdsdsSelectSqlQuery,
+               "DatabaseCredentials" .= _rdsdsDatabaseCredentials,
+               "S3StagingLocation" .= _rdsdsS3StagingLocation,
+               "ResourceRole" .= _rdsdsResourceRole,
+               "ServiceRole" .= _rdsdsServiceRole,
+               "SubnetId" .= _rdsdsSubnetId,
+               "SecurityGroupIds" .= _rdsdsSecurityGroupIds]
+
+-- | The database details of an Amazon RDS database.
+--
+-- /See:/ 'rdsDatabase' smart constructor.
+data RDSDatabase = RDSDatabase'
+    { _rdsdInstanceIdentifier :: !Text
+    , _rdsdDatabaseName       :: !Text
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'RDSDatabase' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'rdsdInstanceIdentifier'
+--
+-- * 'rdsdDatabaseName'
+rdsDatabase
+    :: Text -- ^ 'rdsdInstanceIdentifier'
+    -> Text -- ^ 'rdsdDatabaseName'
+    -> RDSDatabase
+rdsDatabase pInstanceIdentifier_ pDatabaseName_ =
+    RDSDatabase'
+    { _rdsdInstanceIdentifier = pInstanceIdentifier_
+    , _rdsdDatabaseName = pDatabaseName_
+    }
+
+-- | The ID of an RDS DB instance.
+rdsdInstanceIdentifier :: Lens' RDSDatabase Text
+rdsdInstanceIdentifier = lens _rdsdInstanceIdentifier (\ s a -> s{_rdsdInstanceIdentifier = a});
+
+-- | Undocumented member.
+rdsdDatabaseName :: Lens' RDSDatabase Text
+rdsdDatabaseName = lens _rdsdDatabaseName (\ s a -> s{_rdsdDatabaseName = a});
+
+instance FromJSON RDSDatabase where
+        parseJSON
+          = withObject "RDSDatabase"
+              (\ x ->
+                 RDSDatabase' <$>
+                   (x .: "InstanceIdentifier") <*>
+                     (x .: "DatabaseName"))
+
+instance ToJSON RDSDatabase where
+        toJSON RDSDatabase'{..}
+          = object
+              ["InstanceIdentifier" .= _rdsdInstanceIdentifier,
+               "DatabaseName" .= _rdsdDatabaseName]
+
+-- | The database credentials to connect to a database on an RDS DB instance.
+--
+-- /See:/ 'rdsDatabaseCredentials' smart constructor.
+data RDSDatabaseCredentials = RDSDatabaseCredentials'
+    { _rdsdcUsername :: !Text
+    , _rdsdcPassword :: !Text
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'RDSDatabaseCredentials' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'rdsdcUsername'
+--
+-- * 'rdsdcPassword'
+rdsDatabaseCredentials
+    :: Text -- ^ 'rdsdcUsername'
+    -> Text -- ^ 'rdsdcPassword'
+    -> RDSDatabaseCredentials
+rdsDatabaseCredentials pUsername_ pPassword_ =
+    RDSDatabaseCredentials'
+    { _rdsdcUsername = pUsername_
+    , _rdsdcPassword = pPassword_
+    }
+
+-- | Undocumented member.
+rdsdcUsername :: Lens' RDSDatabaseCredentials Text
+rdsdcUsername = lens _rdsdcUsername (\ s a -> s{_rdsdcUsername = a});
+
+-- | Undocumented member.
+rdsdcPassword :: Lens' RDSDatabaseCredentials Text
+rdsdcPassword = lens _rdsdcPassword (\ s a -> s{_rdsdcPassword = a});
+
+instance ToJSON RDSDatabaseCredentials where
+        toJSON RDSDatabaseCredentials'{..}
+          = object
+              ["Username" .= _rdsdcUsername,
+               "Password" .= _rdsdcPassword]
+
+-- | The datasource details that are specific to Amazon RDS.
+--
+-- /See:/ 'rdsMetadata' smart constructor.
+data RDSMetadata = RDSMetadata'
+    { _rmSelectSqlQuery   :: !(Maybe Text)
+    , _rmDataPipelineId   :: !(Maybe Text)
+    , _rmDatabase         :: !(Maybe RDSDatabase)
+    , _rmDatabaseUserName :: !(Maybe Text)
+    , _rmResourceRole     :: !(Maybe Text)
+    , _rmServiceRole      :: !(Maybe Text)
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'RDSMetadata' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'rmSelectSqlQuery'
+--
+-- * 'rmDataPipelineId'
+--
+-- * 'rmDatabase'
+--
+-- * 'rmDatabaseUserName'
+--
+-- * 'rmResourceRole'
+--
+-- * 'rmServiceRole'
+rdsMetadata
+    :: RDSMetadata
+rdsMetadata =
+    RDSMetadata'
+    { _rmSelectSqlQuery = Nothing
+    , _rmDataPipelineId = Nothing
+    , _rmDatabase = Nothing
+    , _rmDatabaseUserName = Nothing
+    , _rmResourceRole = Nothing
+    , _rmServiceRole = Nothing
+    }
+
+-- | The SQL query that is supplied during CreateDataSourceFromRDS. Returns
+-- only if 'Verbose' is true in 'GetDataSourceInput'.
+rmSelectSqlQuery :: Lens' RDSMetadata (Maybe Text)
+rmSelectSqlQuery = lens _rmSelectSqlQuery (\ s a -> s{_rmSelectSqlQuery = a});
+
+-- | The ID of the Data Pipeline instance that is used to carry to copy data
+-- from Amazon RDS to Amazon S3. You can use the ID to find details about
+-- the instance in the Data Pipeline console.
+rmDataPipelineId :: Lens' RDSMetadata (Maybe Text)
+rmDataPipelineId = lens _rmDataPipelineId (\ s a -> s{_rmDataPipelineId = a});
+
+-- | The database details required to connect to an Amazon RDS.
+rmDatabase :: Lens' RDSMetadata (Maybe RDSDatabase)
+rmDatabase = lens _rmDatabase (\ s a -> s{_rmDatabase = a});
+
+-- | Undocumented member.
+rmDatabaseUserName :: Lens' RDSMetadata (Maybe Text)
+rmDatabaseUserName = lens _rmDatabaseUserName (\ s a -> s{_rmDatabaseUserName = a});
+
+-- | The role (DataPipelineDefaultResourceRole) assumed by an Amazon EC2
+-- instance to carry out the copy task from Amazon RDS to Amazon S3. For
+-- more information, see
+-- <http://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-iam-roles.html Role templates>
+-- for data pipelines.
+rmResourceRole :: Lens' RDSMetadata (Maybe Text)
+rmResourceRole = lens _rmResourceRole (\ s a -> s{_rmResourceRole = a});
+
+-- | The role (DataPipelineDefaultRole) assumed by the Data Pipeline service
+-- to monitor the progress of the copy task from Amazon RDS to Amazon S3.
+-- For more information, see
+-- <http://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-iam-roles.html Role templates>
+-- for data pipelines.
+rmServiceRole :: Lens' RDSMetadata (Maybe Text)
+rmServiceRole = lens _rmServiceRole (\ s a -> s{_rmServiceRole = a});
+
+instance FromJSON RDSMetadata where
+        parseJSON
+          = withObject "RDSMetadata"
+              (\ x ->
+                 RDSMetadata' <$>
+                   (x .:? "SelectSqlQuery") <*> (x .:? "DataPipelineId")
+                     <*> (x .:? "Database")
+                     <*> (x .:? "DatabaseUserName")
+                     <*> (x .:? "ResourceRole")
+                     <*> (x .:? "ServiceRole"))
+
+-- | Describes the real-time endpoint information for an 'MLModel'.
+--
+-- /See:/ 'realtimeEndpointInfo' smart constructor.
+data RealtimeEndpointInfo = RealtimeEndpointInfo'
+    { _reiCreatedAt             :: !(Maybe POSIX)
+    , _reiEndpointURL           :: !(Maybe Text)
+    , _reiEndpointStatus        :: !(Maybe RealtimeEndpointStatus)
+    , _reiPeakRequestsPerSecond :: !(Maybe Int)
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'RealtimeEndpointInfo' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'reiCreatedAt'
+--
+-- * 'reiEndpointURL'
+--
+-- * 'reiEndpointStatus'
+--
+-- * 'reiPeakRequestsPerSecond'
+realtimeEndpointInfo
+    :: RealtimeEndpointInfo
+realtimeEndpointInfo =
+    RealtimeEndpointInfo'
+    { _reiCreatedAt = Nothing
+    , _reiEndpointURL = Nothing
+    , _reiEndpointStatus = Nothing
+    , _reiPeakRequestsPerSecond = Nothing
+    }
+
+-- | The time that the request to create the real-time endpoint for the
+-- 'MLModel' was received. The time is expressed in epoch time.
+reiCreatedAt :: Lens' RealtimeEndpointInfo (Maybe UTCTime)
+reiCreatedAt = lens _reiCreatedAt (\ s a -> s{_reiCreatedAt = a}) . mapping _Time;
+
+-- | The URI that specifies where to send real-time prediction requests for
+-- the 'MLModel'.
+--
+-- Note
+--
+-- The application must wait until the real-time endpoint is ready before
+-- using this URI.
+reiEndpointURL :: Lens' RealtimeEndpointInfo (Maybe Text)
+reiEndpointURL = lens _reiEndpointURL (\ s a -> s{_reiEndpointURL = a});
+
+-- | The current status of the real-time endpoint for the 'MLModel'. This
+-- element can have one of the following values:
+--
+-- -   NONE - Endpoint does not exist or was previously deleted.
+-- -   READY - Endpoint is ready to be used for real-time predictions.
+-- -   UPDATING - Updating\/creating the endpoint.
+reiEndpointStatus :: Lens' RealtimeEndpointInfo (Maybe RealtimeEndpointStatus)
+reiEndpointStatus = lens _reiEndpointStatus (\ s a -> s{_reiEndpointStatus = a});
+
+-- | The maximum processing rate for the real-time endpoint for 'MLModel',
+-- measured in incoming requests per second.
+reiPeakRequestsPerSecond :: Lens' RealtimeEndpointInfo (Maybe Int)
+reiPeakRequestsPerSecond = lens _reiPeakRequestsPerSecond (\ s a -> s{_reiPeakRequestsPerSecond = a});
+
+instance FromJSON RealtimeEndpointInfo where
+        parseJSON
+          = withObject "RealtimeEndpointInfo"
+              (\ x ->
+                 RealtimeEndpointInfo' <$>
+                   (x .:? "CreatedAt") <*> (x .:? "EndpointUrl") <*>
+                     (x .:? "EndpointStatus")
+                     <*> (x .:? "PeakRequestsPerSecond"))
+
+-- | Describes the data specification of an Amazon Redshift 'DataSource'.
+--
+-- /See:/ 'redshiftDataSpec' smart constructor.
+data RedshiftDataSpec = RedshiftDataSpec'
+    { _rDataSchemaURI       :: !(Maybe Text)
+    , _rDataSchema          :: !(Maybe Text)
+    , _rDataRearrangement   :: !(Maybe Text)
+    , _rDatabaseInformation :: !RedshiftDatabase
+    , _rSelectSqlQuery      :: !Text
+    , _rDatabaseCredentials :: !RedshiftDatabaseCredentials
+    , _rS3StagingLocation   :: !Text
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'RedshiftDataSpec' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'rDataSchemaURI'
+--
+-- * 'rDataSchema'
+--
+-- * 'rDataRearrangement'
+--
+-- * 'rDatabaseInformation'
+--
+-- * 'rSelectSqlQuery'
+--
+-- * 'rDatabaseCredentials'
+--
+-- * 'rS3StagingLocation'
+redshiftDataSpec
+    :: RedshiftDatabase -- ^ 'rDatabaseInformation'
+    -> Text -- ^ 'rSelectSqlQuery'
+    -> RedshiftDatabaseCredentials -- ^ 'rDatabaseCredentials'
+    -> Text -- ^ 'rS3StagingLocation'
+    -> RedshiftDataSpec
+redshiftDataSpec pDatabaseInformation_ pSelectSqlQuery_ pDatabaseCredentials_ pS3StagingLocation_ =
+    RedshiftDataSpec'
+    { _rDataSchemaURI = Nothing
+    , _rDataSchema = Nothing
+    , _rDataRearrangement = Nothing
+    , _rDatabaseInformation = pDatabaseInformation_
+    , _rSelectSqlQuery = pSelectSqlQuery_
+    , _rDatabaseCredentials = pDatabaseCredentials_
+    , _rS3StagingLocation = pS3StagingLocation_
+    }
+
+-- | Describes the schema location for an Amazon Redshift 'DataSource'.
+rDataSchemaURI :: Lens' RedshiftDataSpec (Maybe Text)
+rDataSchemaURI = lens _rDataSchemaURI (\ s a -> s{_rDataSchemaURI = a});
+
+-- | Describes the schema for an Amazon Redshift 'DataSource'.
+rDataSchema :: Lens' RedshiftDataSpec (Maybe Text)
+rDataSchema = lens _rDataSchema (\ s a -> s{_rDataSchema = a});
+
+-- | Describes the splitting specifications for a 'DataSource'.
+rDataRearrangement :: Lens' RedshiftDataSpec (Maybe Text)
+rDataRearrangement = lens _rDataRearrangement (\ s a -> s{_rDataRearrangement = a});
+
+-- | Describes the 'DatabaseName' and 'ClusterIdentifier' for an Amazon
+-- Redshift 'DataSource'.
+rDatabaseInformation :: Lens' RedshiftDataSpec RedshiftDatabase
+rDatabaseInformation = lens _rDatabaseInformation (\ s a -> s{_rDatabaseInformation = a});
+
+-- | Describes the SQL Query to execute on an Amazon Redshift database for an
+-- Amazon Redshift 'DataSource'.
+rSelectSqlQuery :: Lens' RedshiftDataSpec Text
+rSelectSqlQuery = lens _rSelectSqlQuery (\ s a -> s{_rSelectSqlQuery = a});
+
+-- | Describes AWS Identity and Access Management (IAM) credentials that are
+-- used connect to the Amazon Redshift database.
+rDatabaseCredentials :: Lens' RedshiftDataSpec RedshiftDatabaseCredentials
+rDatabaseCredentials = lens _rDatabaseCredentials (\ s a -> s{_rDatabaseCredentials = a});
+
+-- | Describes an Amazon S3 location to store the result set of the
+-- 'SelectSqlQuery' query.
+rS3StagingLocation :: Lens' RedshiftDataSpec Text
+rS3StagingLocation = lens _rS3StagingLocation (\ s a -> s{_rS3StagingLocation = a});
+
+instance ToJSON RedshiftDataSpec where
+        toJSON RedshiftDataSpec'{..}
+          = object
+              ["DataSchemaUri" .= _rDataSchemaURI,
+               "DataSchema" .= _rDataSchema,
+               "DataRearrangement" .= _rDataRearrangement,
+               "DatabaseInformation" .= _rDatabaseInformation,
+               "SelectSqlQuery" .= _rSelectSqlQuery,
+               "DatabaseCredentials" .= _rDatabaseCredentials,
+               "S3StagingLocation" .= _rS3StagingLocation]
+
+-- | Describes the database details required to connect to an Amazon Redshift
+-- database.
+--
+-- /See:/ 'redshiftDatabase' smart constructor.
+data RedshiftDatabase = RedshiftDatabase'
+    { _rdDatabaseName      :: !Text
+    , _rdClusterIdentifier :: !Text
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'RedshiftDatabase' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'rdDatabaseName'
+--
+-- * 'rdClusterIdentifier'
+redshiftDatabase
+    :: Text -- ^ 'rdDatabaseName'
+    -> Text -- ^ 'rdClusterIdentifier'
+    -> RedshiftDatabase
+redshiftDatabase pDatabaseName_ pClusterIdentifier_ =
+    RedshiftDatabase'
+    { _rdDatabaseName = pDatabaseName_
+    , _rdClusterIdentifier = pClusterIdentifier_
+    }
+
+-- | Undocumented member.
+rdDatabaseName :: Lens' RedshiftDatabase Text
+rdDatabaseName = lens _rdDatabaseName (\ s a -> s{_rdDatabaseName = a});
+
+-- | Undocumented member.
+rdClusterIdentifier :: Lens' RedshiftDatabase Text
+rdClusterIdentifier = lens _rdClusterIdentifier (\ s a -> s{_rdClusterIdentifier = a});
+
+instance FromJSON RedshiftDatabase where
+        parseJSON
+          = withObject "RedshiftDatabase"
+              (\ x ->
+                 RedshiftDatabase' <$>
+                   (x .: "DatabaseName") <*> (x .: "ClusterIdentifier"))
+
+instance ToJSON RedshiftDatabase where
+        toJSON RedshiftDatabase'{..}
+          = object
+              ["DatabaseName" .= _rdDatabaseName,
+               "ClusterIdentifier" .= _rdClusterIdentifier]
+
+-- | Describes the database credentials for connecting to a database on an
+-- Amazon Redshift cluster.
+--
+-- /See:/ 'redshiftDatabaseCredentials' smart constructor.
+data RedshiftDatabaseCredentials = RedshiftDatabaseCredentials'
+    { _rdcUsername :: !Text
+    , _rdcPassword :: !Text
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'RedshiftDatabaseCredentials' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'rdcUsername'
+--
+-- * 'rdcPassword'
+redshiftDatabaseCredentials
+    :: Text -- ^ 'rdcUsername'
+    -> Text -- ^ 'rdcPassword'
+    -> RedshiftDatabaseCredentials
+redshiftDatabaseCredentials pUsername_ pPassword_ =
+    RedshiftDatabaseCredentials'
+    { _rdcUsername = pUsername_
+    , _rdcPassword = pPassword_
+    }
+
+-- | Undocumented member.
+rdcUsername :: Lens' RedshiftDatabaseCredentials Text
+rdcUsername = lens _rdcUsername (\ s a -> s{_rdcUsername = a});
+
+-- | Undocumented member.
+rdcPassword :: Lens' RedshiftDatabaseCredentials Text
+rdcPassword = lens _rdcPassword (\ s a -> s{_rdcPassword = a});
+
+instance ToJSON RedshiftDatabaseCredentials where
+        toJSON RedshiftDatabaseCredentials'{..}
+          = object
+              ["Username" .= _rdcUsername,
+               "Password" .= _rdcPassword]
+
+-- | Describes the 'DataSource' details specific to Amazon Redshift.
+--
+-- /See:/ 'redshiftMetadata' smart constructor.
+data RedshiftMetadata = RedshiftMetadata'
+    { _redSelectSqlQuery   :: !(Maybe Text)
+    , _redRedshiftDatabase :: !(Maybe RedshiftDatabase)
+    , _redDatabaseUserName :: !(Maybe Text)
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'RedshiftMetadata' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'redSelectSqlQuery'
+--
+-- * 'redRedshiftDatabase'
+--
+-- * 'redDatabaseUserName'
+redshiftMetadata
+    :: RedshiftMetadata
+redshiftMetadata =
+    RedshiftMetadata'
+    { _redSelectSqlQuery = Nothing
+    , _redRedshiftDatabase = Nothing
+    , _redDatabaseUserName = Nothing
+    }
+
+-- | The SQL query that is specified during CreateDataSourceFromRedshift.
+-- Returns only if 'Verbose' is true in GetDataSourceInput.
+redSelectSqlQuery :: Lens' RedshiftMetadata (Maybe Text)
+redSelectSqlQuery = lens _redSelectSqlQuery (\ s a -> s{_redSelectSqlQuery = a});
+
+-- | Undocumented member.
+redRedshiftDatabase :: Lens' RedshiftMetadata (Maybe RedshiftDatabase)
+redRedshiftDatabase = lens _redRedshiftDatabase (\ s a -> s{_redRedshiftDatabase = a});
+
+-- | Undocumented member.
+redDatabaseUserName :: Lens' RedshiftMetadata (Maybe Text)
+redDatabaseUserName = lens _redDatabaseUserName (\ s a -> s{_redDatabaseUserName = a});
+
+instance FromJSON RedshiftMetadata where
+        parseJSON
+          = withObject "RedshiftMetadata"
+              (\ x ->
+                 RedshiftMetadata' <$>
+                   (x .:? "SelectSqlQuery") <*>
+                     (x .:? "RedshiftDatabase")
+                     <*> (x .:? "DatabaseUserName"))
+
+-- | Describes the data specification of a 'DataSource'.
+--
+-- /See:/ 's3DataSpec' smart constructor.
+data S3DataSpec = S3DataSpec'
+    { _sdsDataSchema           :: !(Maybe Text)
+    , _sdsDataSchemaLocationS3 :: !(Maybe Text)
+    , _sdsDataRearrangement    :: !(Maybe Text)
+    , _sdsDataLocationS3       :: !Text
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'S3DataSpec' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'sdsDataSchema'
+--
+-- * 'sdsDataSchemaLocationS3'
+--
+-- * 'sdsDataRearrangement'
+--
+-- * 'sdsDataLocationS3'
+s3DataSpec
+    :: Text -- ^ 'sdsDataLocationS3'
+    -> S3DataSpec
+s3DataSpec pDataLocationS3_ =
+    S3DataSpec'
+    { _sdsDataSchema = Nothing
+    , _sdsDataSchemaLocationS3 = Nothing
+    , _sdsDataRearrangement = Nothing
+    , _sdsDataLocationS3 = pDataLocationS3_
+    }
+
+-- | Describes the schema for an Amazon S3 'DataSource'.
+sdsDataSchema :: Lens' S3DataSpec (Maybe Text)
+sdsDataSchema = lens _sdsDataSchema (\ s a -> s{_sdsDataSchema = a});
+
+-- | Describes the schema Location in Amazon S3.
+sdsDataSchemaLocationS3 :: Lens' S3DataSpec (Maybe Text)
+sdsDataSchemaLocationS3 = lens _sdsDataSchemaLocationS3 (\ s a -> s{_sdsDataSchemaLocationS3 = a});
+
+-- | Describes the splitting requirement of a 'Datasource'.
+sdsDataRearrangement :: Lens' S3DataSpec (Maybe Text)
+sdsDataRearrangement = lens _sdsDataRearrangement (\ s a -> s{_sdsDataRearrangement = a});
+
+-- | The location of the data file(s) used by a 'DataSource'. The URI
+-- specifies a data file or an Amazon Simple Storage Service (Amazon S3)
+-- directory or bucket containing data files.
+sdsDataLocationS3 :: Lens' S3DataSpec Text
+sdsDataLocationS3 = lens _sdsDataLocationS3 (\ s a -> s{_sdsDataLocationS3 = a});
+
+instance ToJSON S3DataSpec where
+        toJSON S3DataSpec'{..}
+          = object
+              ["DataSchema" .= _sdsDataSchema,
+               "DataSchemaLocationS3" .= _sdsDataSchemaLocationS3,
+               "DataRearrangement" .= _sdsDataRearrangement,
+               "DataLocationS3" .= _sdsDataLocationS3]
diff --git a/gen/Network/AWS/MachineLearning/Types/Sum.hs b/gen/Network/AWS/MachineLearning/Types/Sum.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/AWS/MachineLearning/Types/Sum.hs
@@ -0,0 +1,429 @@
+{-# 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.MachineLearning.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.MachineLearning.Types.Sum where
+
+import           Network.AWS.Prelude
+
+-- | The function used to train a 'MLModel'. Training choices supported by
+-- Amazon ML include the following:
+--
+-- -   SGD - Stochastic Gradient Descent.
+-- -   RandomForest - Random forest of decision trees.
+data Algorithm =
+    SGD
+    deriving (Eq,Ord,Read,Show,Enum,Data,Typeable,Generic)
+
+instance FromText Algorithm where
+    parser = takeLowerText >>= \case
+        "sgd" -> pure SGD
+        e -> fromTextError $ "Failure parsing Algorithm from value: '" <> e
+           <> "'. Accepted values: sgd"
+
+instance ToText Algorithm where
+    toText = \case
+        SGD -> "sgd"
+
+instance Hashable     Algorithm
+instance ToByteString Algorithm
+instance ToQuery      Algorithm
+instance ToHeader     Algorithm
+
+instance FromJSON Algorithm where
+    parseJSON = parseJSONText "Algorithm"
+
+-- | A list of the variables to use in searching or filtering
+-- 'BatchPrediction'.
+--
+-- -   'CreatedAt' - Sets the search criteria to 'BatchPrediction' creation
+--     date.
+-- -   'Status' - Sets the search criteria to 'BatchPrediction' status.
+-- -   'Name' - Sets the search criteria to the contents of
+--     'BatchPrediction' ____ 'Name'.
+-- -   'IAMUser' - Sets the search criteria to the user account that
+--     invoked the 'BatchPrediction' creation.
+-- -   'MLModelId' - Sets the search criteria to the 'MLModel' used in the
+--     'BatchPrediction'.
+-- -   'DataSourceId' - Sets the search criteria to the 'DataSource' used
+--     in the 'BatchPrediction'.
+-- -   'DataURI' - Sets the search criteria to the data file(s) used in the
+--     'BatchPrediction'. The URL can identify either a file or an Amazon
+--     Simple Storage Service (Amazon S3) bucket or directory.
+data BatchPredictionFilterVariable
+    = BatchCreatedAt
+    | BatchDataSourceId
+    | BatchDataURI
+    | BatchIAMUser
+    | BatchLastUpdatedAt
+    | BatchMLModelId
+    | BatchName
+    | BatchStatus
+    deriving (Eq,Ord,Read,Show,Enum,Data,Typeable,Generic)
+
+instance FromText BatchPredictionFilterVariable where
+    parser = takeLowerText >>= \case
+        "createdat" -> pure BatchCreatedAt
+        "datasourceid" -> pure BatchDataSourceId
+        "datauri" -> pure BatchDataURI
+        "iamuser" -> pure BatchIAMUser
+        "lastupdatedat" -> pure BatchLastUpdatedAt
+        "mlmodelid" -> pure BatchMLModelId
+        "name" -> pure BatchName
+        "status" -> pure BatchStatus
+        e -> fromTextError $ "Failure parsing BatchPredictionFilterVariable from value: '" <> e
+           <> "'. Accepted values: createdat, datasourceid, datauri, iamuser, lastupdatedat, mlmodelid, name, status"
+
+instance ToText BatchPredictionFilterVariable where
+    toText = \case
+        BatchCreatedAt -> "createdat"
+        BatchDataSourceId -> "datasourceid"
+        BatchDataURI -> "datauri"
+        BatchIAMUser -> "iamuser"
+        BatchLastUpdatedAt -> "lastupdatedat"
+        BatchMLModelId -> "mlmodelid"
+        BatchName -> "name"
+        BatchStatus -> "status"
+
+instance Hashable     BatchPredictionFilterVariable
+instance ToByteString BatchPredictionFilterVariable
+instance ToQuery      BatchPredictionFilterVariable
+instance ToHeader     BatchPredictionFilterVariable
+
+instance ToJSON BatchPredictionFilterVariable where
+    toJSON = toJSONText
+
+-- | A list of the variables to use in searching or filtering 'DataSource'.
+--
+-- -   'CreatedAt' - Sets the search criteria to 'DataSource' creation
+--     date.
+-- -   'Status' - Sets the search criteria to 'DataSource' status.
+-- -   'Name' - Sets the search criteria to the contents of 'DataSource'
+--     ____ 'Name'.
+-- -   'DataUri' - Sets the search criteria to the URI of data files used
+--     to create the 'DataSource'. The URI can identify either a file or an
+--     Amazon Simple Storage Service (Amazon S3) bucket or directory.
+-- -   'IAMUser' - Sets the search criteria to the user account that
+--     invoked the 'DataSource' creation.
+--
+-- Note
+--
+-- The variable names should match the variable names in the 'DataSource'.
+data DataSourceFilterVariable
+    = DataCreatedAt
+    | DataDATALOCATIONS3
+    | DataIAMUser
+    | DataLastUpdatedAt
+    | DataName
+    | DataStatus
+    deriving (Eq,Ord,Read,Show,Enum,Data,Typeable,Generic)
+
+instance FromText DataSourceFilterVariable where
+    parser = takeLowerText >>= \case
+        "createdat" -> pure DataCreatedAt
+        "datalocations3" -> pure DataDATALOCATIONS3
+        "iamuser" -> pure DataIAMUser
+        "lastupdatedat" -> pure DataLastUpdatedAt
+        "name" -> pure DataName
+        "status" -> pure DataStatus
+        e -> fromTextError $ "Failure parsing DataSourceFilterVariable from value: '" <> e
+           <> "'. Accepted values: createdat, datalocations3, iamuser, lastupdatedat, name, status"
+
+instance ToText DataSourceFilterVariable where
+    toText = \case
+        DataCreatedAt -> "createdat"
+        DataDATALOCATIONS3 -> "datalocations3"
+        DataIAMUser -> "iamuser"
+        DataLastUpdatedAt -> "lastupdatedat"
+        DataName -> "name"
+        DataStatus -> "status"
+
+instance Hashable     DataSourceFilterVariable
+instance ToByteString DataSourceFilterVariable
+instance ToQuery      DataSourceFilterVariable
+instance ToHeader     DataSourceFilterVariable
+
+instance ToJSON DataSourceFilterVariable where
+    toJSON = toJSONText
+
+-- | Contains the key values of 'DetailsMap': PredictiveModelType - Indicates
+-- the type of the 'MLModel'. Algorithm - Indicates the algorithm was used
+-- for the 'MLModel'.
+data DetailsAttributes
+    = Algorithm
+    | PredictiveModelType
+    deriving (Eq,Ord,Read,Show,Enum,Data,Typeable,Generic)
+
+instance FromText DetailsAttributes where
+    parser = takeLowerText >>= \case
+        "algorithm" -> pure Algorithm
+        "predictivemodeltype" -> pure PredictiveModelType
+        e -> fromTextError $ "Failure parsing DetailsAttributes from value: '" <> e
+           <> "'. Accepted values: algorithm, predictivemodeltype"
+
+instance ToText DetailsAttributes where
+    toText = \case
+        Algorithm -> "algorithm"
+        PredictiveModelType -> "predictivemodeltype"
+
+instance Hashable     DetailsAttributes
+instance ToByteString DetailsAttributes
+instance ToQuery      DetailsAttributes
+instance ToHeader     DetailsAttributes
+
+instance FromJSON DetailsAttributes where
+    parseJSON = parseJSONText "DetailsAttributes"
+
+-- | Entity status with the following possible values:
+--
+-- -   PENDING
+-- -   INPROGRESS
+-- -   FAILED
+-- -   COMPLETED
+-- -   DELETED
+data EntityStatus
+    = Completed
+    | Deleted
+    | Failed
+    | Inprogress
+    | Pending
+    deriving (Eq,Ord,Read,Show,Enum,Data,Typeable,Generic)
+
+instance FromText EntityStatus where
+    parser = takeLowerText >>= \case
+        "completed" -> pure Completed
+        "deleted" -> pure Deleted
+        "failed" -> pure Failed
+        "inprogress" -> pure Inprogress
+        "pending" -> pure Pending
+        e -> fromTextError $ "Failure parsing EntityStatus from value: '" <> e
+           <> "'. Accepted values: completed, deleted, failed, inprogress, pending"
+
+instance ToText EntityStatus where
+    toText = \case
+        Completed -> "completed"
+        Deleted -> "deleted"
+        Failed -> "failed"
+        Inprogress -> "inprogress"
+        Pending -> "pending"
+
+instance Hashable     EntityStatus
+instance ToByteString EntityStatus
+instance ToQuery      EntityStatus
+instance ToHeader     EntityStatus
+
+instance FromJSON EntityStatus where
+    parseJSON = parseJSONText "EntityStatus"
+
+-- | A list of the variables to use in searching or filtering 'Evaluation'.
+--
+-- -   'CreatedAt' - Sets the search criteria to 'Evaluation' creation
+--     date.
+-- -   'Status' - Sets the search criteria to 'Evaluation' status.
+-- -   'Name' - Sets the search criteria to the contents of 'Evaluation'
+--     ____ 'Name'.
+-- -   'IAMUser' - Sets the search criteria to the user account that
+--     invoked an evaluation.
+-- -   'MLModelId' - Sets the search criteria to the 'Predictor' that was
+--     evaluated.
+-- -   'DataSourceId' - Sets the search criteria to the 'DataSource' used
+--     in evaluation.
+-- -   'DataUri' - Sets the search criteria to the data file(s) used in
+--     evaluation. The URL can identify either a file or an Amazon Simple
+--     Storage Service (Amazon S3) bucket or directory.
+data EvaluationFilterVariable
+    = EvalCreatedAt
+    | EvalDataSourceId
+    | EvalDataURI
+    | EvalIAMUser
+    | EvalLastUpdatedAt
+    | EvalMLModelId
+    | EvalName
+    | EvalStatus
+    deriving (Eq,Ord,Read,Show,Enum,Data,Typeable,Generic)
+
+instance FromText EvaluationFilterVariable where
+    parser = takeLowerText >>= \case
+        "createdat" -> pure EvalCreatedAt
+        "datasourceid" -> pure EvalDataSourceId
+        "datauri" -> pure EvalDataURI
+        "iamuser" -> pure EvalIAMUser
+        "lastupdatedat" -> pure EvalLastUpdatedAt
+        "mlmodelid" -> pure EvalMLModelId
+        "name" -> pure EvalName
+        "status" -> pure EvalStatus
+        e -> fromTextError $ "Failure parsing EvaluationFilterVariable from value: '" <> e
+           <> "'. Accepted values: createdat, datasourceid, datauri, iamuser, lastupdatedat, mlmodelid, name, status"
+
+instance ToText EvaluationFilterVariable where
+    toText = \case
+        EvalCreatedAt -> "createdat"
+        EvalDataSourceId -> "datasourceid"
+        EvalDataURI -> "datauri"
+        EvalIAMUser -> "iamuser"
+        EvalLastUpdatedAt -> "lastupdatedat"
+        EvalMLModelId -> "mlmodelid"
+        EvalName -> "name"
+        EvalStatus -> "status"
+
+instance Hashable     EvaluationFilterVariable
+instance ToByteString EvaluationFilterVariable
+instance ToQuery      EvaluationFilterVariable
+instance ToHeader     EvaluationFilterVariable
+
+instance ToJSON EvaluationFilterVariable where
+    toJSON = toJSONText
+
+data MLModelFilterVariable
+    = MLMFVAlgorithm
+    | MLMFVCreatedAt
+    | MLMFVIAMUser
+    | MLMFVLastUpdatedAt
+    | MLMFVMLModelType
+    | MLMFVName
+    | MLMFVRealtimeEndpointStatus
+    | MLMFVStatus
+    | MLMFVTrainingDataSourceId
+    | MLMFVTrainingDataURI
+    deriving (Eq,Ord,Read,Show,Enum,Data,Typeable,Generic)
+
+instance FromText MLModelFilterVariable where
+    parser = takeLowerText >>= \case
+        "algorithm" -> pure MLMFVAlgorithm
+        "createdat" -> pure MLMFVCreatedAt
+        "iamuser" -> pure MLMFVIAMUser
+        "lastupdatedat" -> pure MLMFVLastUpdatedAt
+        "mlmodeltype" -> pure MLMFVMLModelType
+        "name" -> pure MLMFVName
+        "realtimeendpointstatus" -> pure MLMFVRealtimeEndpointStatus
+        "status" -> pure MLMFVStatus
+        "trainingdatasourceid" -> pure MLMFVTrainingDataSourceId
+        "trainingdatauri" -> pure MLMFVTrainingDataURI
+        e -> fromTextError $ "Failure parsing MLModelFilterVariable from value: '" <> e
+           <> "'. Accepted values: algorithm, createdat, iamuser, lastupdatedat, mlmodeltype, name, realtimeendpointstatus, status, trainingdatasourceid, trainingdatauri"
+
+instance ToText MLModelFilterVariable where
+    toText = \case
+        MLMFVAlgorithm -> "algorithm"
+        MLMFVCreatedAt -> "createdat"
+        MLMFVIAMUser -> "iamuser"
+        MLMFVLastUpdatedAt -> "lastupdatedat"
+        MLMFVMLModelType -> "mlmodeltype"
+        MLMFVName -> "name"
+        MLMFVRealtimeEndpointStatus -> "realtimeendpointstatus"
+        MLMFVStatus -> "status"
+        MLMFVTrainingDataSourceId -> "trainingdatasourceid"
+        MLMFVTrainingDataURI -> "trainingdatauri"
+
+instance Hashable     MLModelFilterVariable
+instance ToByteString MLModelFilterVariable
+instance ToQuery      MLModelFilterVariable
+instance ToHeader     MLModelFilterVariable
+
+instance ToJSON MLModelFilterVariable where
+    toJSON = toJSONText
+
+data MLModelType
+    = Binary
+    | Multiclass
+    | Regression
+    deriving (Eq,Ord,Read,Show,Enum,Data,Typeable,Generic)
+
+instance FromText MLModelType where
+    parser = takeLowerText >>= \case
+        "binary" -> pure Binary
+        "multiclass" -> pure Multiclass
+        "regression" -> pure Regression
+        e -> fromTextError $ "Failure parsing MLModelType from value: '" <> e
+           <> "'. Accepted values: binary, multiclass, regression"
+
+instance ToText MLModelType where
+    toText = \case
+        Binary -> "binary"
+        Multiclass -> "multiclass"
+        Regression -> "regression"
+
+instance Hashable     MLModelType
+instance ToByteString MLModelType
+instance ToQuery      MLModelType
+instance ToHeader     MLModelType
+
+instance ToJSON MLModelType where
+    toJSON = toJSONText
+
+instance FromJSON MLModelType where
+    parseJSON = parseJSONText "MLModelType"
+
+data RealtimeEndpointStatus
+    = RESFailed
+    | RESNone
+    | RESReady
+    | RESUpdating
+    deriving (Eq,Ord,Read,Show,Enum,Data,Typeable,Generic)
+
+instance FromText RealtimeEndpointStatus where
+    parser = takeLowerText >>= \case
+        "failed" -> pure RESFailed
+        "none" -> pure RESNone
+        "ready" -> pure RESReady
+        "updating" -> pure RESUpdating
+        e -> fromTextError $ "Failure parsing RealtimeEndpointStatus from value: '" <> e
+           <> "'. Accepted values: failed, none, ready, updating"
+
+instance ToText RealtimeEndpointStatus where
+    toText = \case
+        RESFailed -> "failed"
+        RESNone -> "none"
+        RESReady -> "ready"
+        RESUpdating -> "updating"
+
+instance Hashable     RealtimeEndpointStatus
+instance ToByteString RealtimeEndpointStatus
+instance ToQuery      RealtimeEndpointStatus
+instance ToHeader     RealtimeEndpointStatus
+
+instance FromJSON RealtimeEndpointStatus where
+    parseJSON = parseJSONText "RealtimeEndpointStatus"
+
+-- | The sort order specified in a listing condition. Possible values include
+-- the following:
+--
+-- -   'asc' - Present the information in ascending order (from A-Z).
+-- -   'dsc' - Present the information in descending order (from Z-A).
+data SortOrder
+    = Asc
+    | Dsc
+    deriving (Eq,Ord,Read,Show,Enum,Data,Typeable,Generic)
+
+instance FromText SortOrder where
+    parser = takeLowerText >>= \case
+        "asc" -> pure Asc
+        "dsc" -> pure Dsc
+        e -> fromTextError $ "Failure parsing SortOrder from value: '" <> e
+           <> "'. Accepted values: asc, dsc"
+
+instance ToText SortOrder where
+    toText = \case
+        Asc -> "asc"
+        Dsc -> "dsc"
+
+instance Hashable     SortOrder
+instance ToByteString SortOrder
+instance ToQuery      SortOrder
+instance ToHeader     SortOrder
+
+instance ToJSON SortOrder where
+    toJSON = toJSONText
diff --git a/gen/Network/AWS/MachineLearning/UpdateBatchPrediction.hs b/gen/Network/AWS/MachineLearning/UpdateBatchPrediction.hs
--- a/gen/Network/AWS/MachineLearning/UpdateBatchPrediction.hs
+++ b/gen/Network/AWS/MachineLearning/UpdateBatchPrediction.hs
@@ -1,130 +1,149 @@
-{-# 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.MachineLearning.UpdateBatchPrediction
--- 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 'BatchPredictionName' of a 'BatchPrediction'.
+-- Updates the 'BatchPredictionName' of a 'BatchPrediction'.
 --
--- You can use the 'GetBatchPrediction' operation to view the contents of the
+-- You can use the GetBatchPrediction operation to view the contents of the
 -- updated data element.
 --
--- <http://http://docs.aws.amazon.com/machine-learning/latest/APIReference/API_UpdateBatchPrediction.html>
+-- /See:/ <http://http://docs.aws.amazon.com/machine-learning/latest/APIReference/API_UpdateBatchPrediction.html AWS API Reference> for UpdateBatchPrediction.
 module Network.AWS.MachineLearning.UpdateBatchPrediction
     (
-    -- * Request
-      UpdateBatchPrediction
-    -- ** Request constructor
-    , updateBatchPrediction
-    -- ** Request lenses
+    -- * Creating a Request
+      updateBatchPrediction
+    , UpdateBatchPrediction
+    -- * Request Lenses
     , ubpBatchPredictionId
     , ubpBatchPredictionName
 
-    -- * Response
-    , UpdateBatchPredictionResponse
-    -- ** Response constructor
+    -- * Destructuring the Response
     , updateBatchPredictionResponse
-    -- ** Response lenses
-    , ubprBatchPredictionId
+    , UpdateBatchPredictionResponse
+    -- * Response Lenses
+    , ubprsBatchPredictionId
+    , ubprsStatus
     ) where
 
-import Network.AWS.Data (Object)
-import Network.AWS.Prelude
-import Network.AWS.Request.JSON
-import Network.AWS.MachineLearning.Types
-import qualified GHC.Exts
+import           Network.AWS.MachineLearning.Types
+import           Network.AWS.MachineLearning.Types.Product
+import           Network.AWS.Prelude
+import           Network.AWS.Request
+import           Network.AWS.Response
 
-data UpdateBatchPrediction = UpdateBatchPrediction
-    { _ubpBatchPredictionId   :: Text
-    , _ubpBatchPredictionName :: Text
-    } deriving (Eq, Ord, Read, Show)
+-- | /See:/ 'updateBatchPrediction' smart constructor.
+data UpdateBatchPrediction = UpdateBatchPrediction'
+    { _ubpBatchPredictionId   :: !Text
+    , _ubpBatchPredictionName :: !Text
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
 
--- | 'UpdateBatchPrediction' constructor.
---
--- The fields accessible through corresponding lenses are:
+-- | Creates a value of 'UpdateBatchPrediction' with the minimum fields required to make a request.
 --
--- * 'ubpBatchPredictionId' @::@ 'Text'
+-- Use one of the following lenses to modify other fields as desired:
 --
--- * 'ubpBatchPredictionName' @::@ 'Text'
+-- * 'ubpBatchPredictionId'
 --
-updateBatchPrediction :: Text -- ^ 'ubpBatchPredictionId'
-                      -> Text -- ^ 'ubpBatchPredictionName'
-                      -> UpdateBatchPrediction
-updateBatchPrediction p1 p2 = UpdateBatchPrediction
-    { _ubpBatchPredictionId   = p1
-    , _ubpBatchPredictionName = p2
+-- * 'ubpBatchPredictionName'
+updateBatchPrediction
+    :: Text -- ^ 'ubpBatchPredictionId'
+    -> Text -- ^ 'ubpBatchPredictionName'
+    -> UpdateBatchPrediction
+updateBatchPrediction pBatchPredictionId_ pBatchPredictionName_ =
+    UpdateBatchPrediction'
+    { _ubpBatchPredictionId = pBatchPredictionId_
+    , _ubpBatchPredictionName = pBatchPredictionName_
     }
 
 -- | The ID assigned to the 'BatchPrediction' during creation.
 ubpBatchPredictionId :: Lens' UpdateBatchPrediction Text
-ubpBatchPredictionId =
-    lens _ubpBatchPredictionId (\s a -> s { _ubpBatchPredictionId = a })
+ubpBatchPredictionId = lens _ubpBatchPredictionId (\ s a -> s{_ubpBatchPredictionId = a});
 
 -- | A new user-supplied name or description of the 'BatchPrediction'.
 ubpBatchPredictionName :: Lens' UpdateBatchPrediction Text
-ubpBatchPredictionName =
-    lens _ubpBatchPredictionName (\s a -> s { _ubpBatchPredictionName = a })
+ubpBatchPredictionName = lens _ubpBatchPredictionName (\ s a -> s{_ubpBatchPredictionName = a});
 
-newtype UpdateBatchPredictionResponse = UpdateBatchPredictionResponse
-    { _ubprBatchPredictionId :: Maybe Text
-    } deriving (Eq, Ord, Read, Show, Monoid)
+instance AWSRequest UpdateBatchPrediction where
+        type Sv UpdateBatchPrediction = MachineLearning
+        type Rs UpdateBatchPrediction =
+             UpdateBatchPredictionResponse
+        request = postJSON
+        response
+          = receiveJSON
+              (\ s h x ->
+                 UpdateBatchPredictionResponse' <$>
+                   (x .?> "BatchPredictionId") <*> (pure (fromEnum s)))
 
--- | 'UpdateBatchPredictionResponse' constructor.
---
--- The fields accessible through corresponding lenses are:
---
--- * 'ubprBatchPredictionId' @::@ 'Maybe' 'Text'
---
-updateBatchPredictionResponse :: UpdateBatchPredictionResponse
-updateBatchPredictionResponse = UpdateBatchPredictionResponse
-    { _ubprBatchPredictionId = Nothing
-    }
+instance ToHeaders UpdateBatchPrediction where
+        toHeaders
+          = const
+              (mconcat
+                 ["X-Amz-Target" =#
+                    ("AmazonML_20141212.UpdateBatchPrediction" ::
+                       ByteString),
+                  "Content-Type" =#
+                    ("application/x-amz-json-1.1" :: ByteString)])
 
--- | The ID assigned to the 'BatchPrediction' during creation. This value should be
--- identical to the value of the 'BatchPredictionId' in the request.
-ubprBatchPredictionId :: Lens' UpdateBatchPredictionResponse (Maybe Text)
-ubprBatchPredictionId =
-    lens _ubprBatchPredictionId (\s a -> s { _ubprBatchPredictionId = a })
+instance ToJSON UpdateBatchPrediction where
+        toJSON UpdateBatchPrediction'{..}
+          = object
+              ["BatchPredictionId" .= _ubpBatchPredictionId,
+               "BatchPredictionName" .= _ubpBatchPredictionName]
 
 instance ToPath UpdateBatchPrediction where
-    toPath = const "/"
+        toPath = const "/"
 
 instance ToQuery UpdateBatchPrediction where
-    toQuery = const mempty
-
-instance ToHeaders UpdateBatchPrediction
+        toQuery = const mempty
 
-instance ToJSON UpdateBatchPrediction where
-    toJSON UpdateBatchPrediction{..} = object
-        [ "BatchPredictionId"   .= _ubpBatchPredictionId
-        , "BatchPredictionName" .= _ubpBatchPredictionName
-        ]
+-- | Represents the output of an UpdateBatchPrediction operation.
+--
+-- You can see the updated content by using the GetBatchPrediction
+-- operation.
+--
+-- /See:/ 'updateBatchPredictionResponse' smart constructor.
+data UpdateBatchPredictionResponse = UpdateBatchPredictionResponse'
+    { _ubprsBatchPredictionId :: !(Maybe Text)
+    , _ubprsStatus            :: !Int
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
 
-instance AWSRequest UpdateBatchPrediction where
-    type Sv UpdateBatchPrediction = MachineLearning
-    type Rs UpdateBatchPrediction = UpdateBatchPredictionResponse
+-- | Creates a value of 'UpdateBatchPredictionResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'ubprsBatchPredictionId'
+--
+-- * 'ubprsStatus'
+updateBatchPredictionResponse
+    :: Int -- ^ 'ubprsStatus'
+    -> UpdateBatchPredictionResponse
+updateBatchPredictionResponse pStatus_ =
+    UpdateBatchPredictionResponse'
+    { _ubprsBatchPredictionId = Nothing
+    , _ubprsStatus = pStatus_
+    }
 
-    request  = post "UpdateBatchPrediction"
-    response = jsonResponse
+-- | The ID assigned to the 'BatchPrediction' during creation. This value
+-- should be identical to the value of the 'BatchPredictionId' in the
+-- request.
+ubprsBatchPredictionId :: Lens' UpdateBatchPredictionResponse (Maybe Text)
+ubprsBatchPredictionId = lens _ubprsBatchPredictionId (\ s a -> s{_ubprsBatchPredictionId = a});
 
-instance FromJSON UpdateBatchPredictionResponse where
-    parseJSON = withObject "UpdateBatchPredictionResponse" $ \o -> UpdateBatchPredictionResponse
-        <$> o .:? "BatchPredictionId"
+-- | The response status code.
+ubprsStatus :: Lens' UpdateBatchPredictionResponse Int
+ubprsStatus = lens _ubprsStatus (\ s a -> s{_ubprsStatus = a});
diff --git a/gen/Network/AWS/MachineLearning/UpdateDataSource.hs b/gen/Network/AWS/MachineLearning/UpdateDataSource.hs
--- a/gen/Network/AWS/MachineLearning/UpdateDataSource.hs
+++ b/gen/Network/AWS/MachineLearning/UpdateDataSource.hs
@@ -1,129 +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.MachineLearning.UpdateDataSource
--- 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 'DataSourceName' of a 'DataSource'.
+-- Updates the 'DataSourceName' of a 'DataSource'.
 --
--- You can use the 'GetDataSource' operation to view the contents of the updated
--- data element.
+-- You can use the GetDataSource operation to view the contents of the
+-- updated data element.
 --
--- <http://http://docs.aws.amazon.com/machine-learning/latest/APIReference/API_UpdateDataSource.html>
+-- /See:/ <http://http://docs.aws.amazon.com/machine-learning/latest/APIReference/API_UpdateDataSource.html AWS API Reference> for UpdateDataSource.
 module Network.AWS.MachineLearning.UpdateDataSource
     (
-    -- * Request
-      UpdateDataSource
-    -- ** Request constructor
-    , updateDataSource
-    -- ** Request lenses
+    -- * Creating a Request
+      updateDataSource
+    , UpdateDataSource
+    -- * Request Lenses
     , udsDataSourceId
     , udsDataSourceName
 
-    -- * Response
-    , UpdateDataSourceResponse
-    -- ** Response constructor
+    -- * Destructuring the Response
     , updateDataSourceResponse
-    -- ** Response lenses
-    , udsrDataSourceId
+    , UpdateDataSourceResponse
+    -- * Response Lenses
+    , udsrsDataSourceId
+    , udsrsStatus
     ) where
 
-import Network.AWS.Data (Object)
-import Network.AWS.Prelude
-import Network.AWS.Request.JSON
-import Network.AWS.MachineLearning.Types
-import qualified GHC.Exts
+import           Network.AWS.MachineLearning.Types
+import           Network.AWS.MachineLearning.Types.Product
+import           Network.AWS.Prelude
+import           Network.AWS.Request
+import           Network.AWS.Response
 
-data UpdateDataSource = UpdateDataSource
-    { _udsDataSourceId   :: Text
-    , _udsDataSourceName :: Text
-    } deriving (Eq, Ord, Read, Show)
+-- | /See:/ 'updateDataSource' smart constructor.
+data UpdateDataSource = UpdateDataSource'
+    { _udsDataSourceId   :: !Text
+    , _udsDataSourceName :: !Text
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
 
--- | 'UpdateDataSource' constructor.
---
--- The fields accessible through corresponding lenses are:
+-- | Creates a value of 'UpdateDataSource' with the minimum fields required to make a request.
 --
--- * 'udsDataSourceId' @::@ 'Text'
+-- Use one of the following lenses to modify other fields as desired:
 --
--- * 'udsDataSourceName' @::@ 'Text'
+-- * 'udsDataSourceId'
 --
-updateDataSource :: Text -- ^ 'udsDataSourceId'
-                 -> Text -- ^ 'udsDataSourceName'
-                 -> UpdateDataSource
-updateDataSource p1 p2 = UpdateDataSource
-    { _udsDataSourceId   = p1
-    , _udsDataSourceName = p2
+-- * 'udsDataSourceName'
+updateDataSource
+    :: Text -- ^ 'udsDataSourceId'
+    -> Text -- ^ 'udsDataSourceName'
+    -> UpdateDataSource
+updateDataSource pDataSourceId_ pDataSourceName_ =
+    UpdateDataSource'
+    { _udsDataSourceId = pDataSourceId_
+    , _udsDataSourceName = pDataSourceName_
     }
 
 -- | The ID assigned to the 'DataSource' during creation.
 udsDataSourceId :: Lens' UpdateDataSource Text
-udsDataSourceId = lens _udsDataSourceId (\s a -> s { _udsDataSourceId = a })
+udsDataSourceId = lens _udsDataSourceId (\ s a -> s{_udsDataSourceId = a});
 
--- | A new user-supplied name or description of the 'DataSource' that will replace
--- the current description.
+-- | A new user-supplied name or description of the 'DataSource' that will
+-- replace the current description.
 udsDataSourceName :: Lens' UpdateDataSource Text
-udsDataSourceName =
-    lens _udsDataSourceName (\s a -> s { _udsDataSourceName = a })
+udsDataSourceName = lens _udsDataSourceName (\ s a -> s{_udsDataSourceName = a});
 
-newtype UpdateDataSourceResponse = UpdateDataSourceResponse
-    { _udsrDataSourceId :: Maybe Text
-    } deriving (Eq, Ord, Read, Show, Monoid)
+instance AWSRequest UpdateDataSource where
+        type Sv UpdateDataSource = MachineLearning
+        type Rs UpdateDataSource = UpdateDataSourceResponse
+        request = postJSON
+        response
+          = receiveJSON
+              (\ s h x ->
+                 UpdateDataSourceResponse' <$>
+                   (x .?> "DataSourceId") <*> (pure (fromEnum s)))
 
--- | 'UpdateDataSourceResponse' constructor.
---
--- The fields accessible through corresponding lenses are:
---
--- * 'udsrDataSourceId' @::@ 'Maybe' 'Text'
---
-updateDataSourceResponse :: UpdateDataSourceResponse
-updateDataSourceResponse = UpdateDataSourceResponse
-    { _udsrDataSourceId = Nothing
-    }
+instance ToHeaders UpdateDataSource where
+        toHeaders
+          = const
+              (mconcat
+                 ["X-Amz-Target" =#
+                    ("AmazonML_20141212.UpdateDataSource" :: ByteString),
+                  "Content-Type" =#
+                    ("application/x-amz-json-1.1" :: ByteString)])
 
--- | The ID assigned to the 'DataSource' during creation. This value should be
--- identical to the value of the 'DataSourceID' in the request.
-udsrDataSourceId :: Lens' UpdateDataSourceResponse (Maybe Text)
-udsrDataSourceId = lens _udsrDataSourceId (\s a -> s { _udsrDataSourceId = a })
+instance ToJSON UpdateDataSource where
+        toJSON UpdateDataSource'{..}
+          = object
+              ["DataSourceId" .= _udsDataSourceId,
+               "DataSourceName" .= _udsDataSourceName]
 
 instance ToPath UpdateDataSource where
-    toPath = const "/"
+        toPath = const "/"
 
 instance ToQuery UpdateDataSource where
-    toQuery = const mempty
-
-instance ToHeaders UpdateDataSource
+        toQuery = const mempty
 
-instance ToJSON UpdateDataSource where
-    toJSON UpdateDataSource{..} = object
-        [ "DataSourceId"   .= _udsDataSourceId
-        , "DataSourceName" .= _udsDataSourceName
-        ]
+-- | Represents the output of an UpdateDataSource operation.
+--
+-- You can see the updated content by using the GetBatchPrediction
+-- operation.
+--
+-- /See:/ 'updateDataSourceResponse' smart constructor.
+data UpdateDataSourceResponse = UpdateDataSourceResponse'
+    { _udsrsDataSourceId :: !(Maybe Text)
+    , _udsrsStatus       :: !Int
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
 
-instance AWSRequest UpdateDataSource where
-    type Sv UpdateDataSource = MachineLearning
-    type Rs UpdateDataSource = UpdateDataSourceResponse
+-- | Creates a value of 'UpdateDataSourceResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'udsrsDataSourceId'
+--
+-- * 'udsrsStatus'
+updateDataSourceResponse
+    :: Int -- ^ 'udsrsStatus'
+    -> UpdateDataSourceResponse
+updateDataSourceResponse pStatus_ =
+    UpdateDataSourceResponse'
+    { _udsrsDataSourceId = Nothing
+    , _udsrsStatus = pStatus_
+    }
 
-    request  = post "UpdateDataSource"
-    response = jsonResponse
+-- | The ID assigned to the 'DataSource' during creation. This value should
+-- be identical to the value of the 'DataSourceID' in the request.
+udsrsDataSourceId :: Lens' UpdateDataSourceResponse (Maybe Text)
+udsrsDataSourceId = lens _udsrsDataSourceId (\ s a -> s{_udsrsDataSourceId = a});
 
-instance FromJSON UpdateDataSourceResponse where
-    parseJSON = withObject "UpdateDataSourceResponse" $ \o -> UpdateDataSourceResponse
-        <$> o .:? "DataSourceId"
+-- | The response status code.
+udsrsStatus :: Lens' UpdateDataSourceResponse Int
+udsrsStatus = lens _udsrsStatus (\ s a -> s{_udsrsStatus = a});
diff --git a/gen/Network/AWS/MachineLearning/UpdateEvaluation.hs b/gen/Network/AWS/MachineLearning/UpdateEvaluation.hs
--- a/gen/Network/AWS/MachineLearning/UpdateEvaluation.hs
+++ b/gen/Network/AWS/MachineLearning/UpdateEvaluation.hs
@@ -1,128 +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.MachineLearning.UpdateEvaluation
--- 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 'EvaluationName' of an 'Evaluation'.
+-- Updates the 'EvaluationName' of an 'Evaluation'.
 --
--- You can use the 'GetEvaluation' operation to view the contents of the updated
--- data element.
+-- You can use the GetEvaluation operation to view the contents of the
+-- updated data element.
 --
--- <http://http://docs.aws.amazon.com/machine-learning/latest/APIReference/API_UpdateEvaluation.html>
+-- /See:/ <http://http://docs.aws.amazon.com/machine-learning/latest/APIReference/API_UpdateEvaluation.html AWS API Reference> for UpdateEvaluation.
 module Network.AWS.MachineLearning.UpdateEvaluation
     (
-    -- * Request
-      UpdateEvaluation
-    -- ** Request constructor
-    , updateEvaluation
-    -- ** Request lenses
+    -- * Creating a Request
+      updateEvaluation
+    , UpdateEvaluation
+    -- * Request Lenses
     , ueEvaluationId
     , ueEvaluationName
 
-    -- * Response
-    , UpdateEvaluationResponse
-    -- ** Response constructor
+    -- * Destructuring the Response
     , updateEvaluationResponse
-    -- ** Response lenses
-    , uerEvaluationId
+    , UpdateEvaluationResponse
+    -- * Response Lenses
+    , uersEvaluationId
+    , uersStatus
     ) where
 
-import Network.AWS.Data (Object)
-import Network.AWS.Prelude
-import Network.AWS.Request.JSON
-import Network.AWS.MachineLearning.Types
-import qualified GHC.Exts
+import           Network.AWS.MachineLearning.Types
+import           Network.AWS.MachineLearning.Types.Product
+import           Network.AWS.Prelude
+import           Network.AWS.Request
+import           Network.AWS.Response
 
-data UpdateEvaluation = UpdateEvaluation
-    { _ueEvaluationId   :: Text
-    , _ueEvaluationName :: Text
-    } deriving (Eq, Ord, Read, Show)
+-- | /See:/ 'updateEvaluation' smart constructor.
+data UpdateEvaluation = UpdateEvaluation'
+    { _ueEvaluationId   :: !Text
+    , _ueEvaluationName :: !Text
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
 
--- | 'UpdateEvaluation' constructor.
---
--- The fields accessible through corresponding lenses are:
+-- | Creates a value of 'UpdateEvaluation' with the minimum fields required to make a request.
 --
--- * 'ueEvaluationId' @::@ 'Text'
+-- Use one of the following lenses to modify other fields as desired:
 --
--- * 'ueEvaluationName' @::@ 'Text'
+-- * 'ueEvaluationId'
 --
-updateEvaluation :: Text -- ^ 'ueEvaluationId'
-                 -> Text -- ^ 'ueEvaluationName'
-                 -> UpdateEvaluation
-updateEvaluation p1 p2 = UpdateEvaluation
-    { _ueEvaluationId   = p1
-    , _ueEvaluationName = p2
+-- * 'ueEvaluationName'
+updateEvaluation
+    :: Text -- ^ 'ueEvaluationId'
+    -> Text -- ^ 'ueEvaluationName'
+    -> UpdateEvaluation
+updateEvaluation pEvaluationId_ pEvaluationName_ =
+    UpdateEvaluation'
+    { _ueEvaluationId = pEvaluationId_
+    , _ueEvaluationName = pEvaluationName_
     }
 
 -- | The ID assigned to the 'Evaluation' during creation.
 ueEvaluationId :: Lens' UpdateEvaluation Text
-ueEvaluationId = lens _ueEvaluationId (\s a -> s { _ueEvaluationId = a })
+ueEvaluationId = lens _ueEvaluationId (\ s a -> s{_ueEvaluationId = a});
 
--- | A new user-supplied name or description of the 'Evaluation' that will replace
--- the current content.
+-- | A new user-supplied name or description of the 'Evaluation' that will
+-- replace the current content.
 ueEvaluationName :: Lens' UpdateEvaluation Text
-ueEvaluationName = lens _ueEvaluationName (\s a -> s { _ueEvaluationName = a })
+ueEvaluationName = lens _ueEvaluationName (\ s a -> s{_ueEvaluationName = a});
 
-newtype UpdateEvaluationResponse = UpdateEvaluationResponse
-    { _uerEvaluationId :: Maybe Text
-    } deriving (Eq, Ord, Read, Show, Monoid)
+instance AWSRequest UpdateEvaluation where
+        type Sv UpdateEvaluation = MachineLearning
+        type Rs UpdateEvaluation = UpdateEvaluationResponse
+        request = postJSON
+        response
+          = receiveJSON
+              (\ s h x ->
+                 UpdateEvaluationResponse' <$>
+                   (x .?> "EvaluationId") <*> (pure (fromEnum s)))
 
--- | 'UpdateEvaluationResponse' constructor.
---
--- The fields accessible through corresponding lenses are:
---
--- * 'uerEvaluationId' @::@ 'Maybe' 'Text'
---
-updateEvaluationResponse :: UpdateEvaluationResponse
-updateEvaluationResponse = UpdateEvaluationResponse
-    { _uerEvaluationId = Nothing
-    }
+instance ToHeaders UpdateEvaluation where
+        toHeaders
+          = const
+              (mconcat
+                 ["X-Amz-Target" =#
+                    ("AmazonML_20141212.UpdateEvaluation" :: ByteString),
+                  "Content-Type" =#
+                    ("application/x-amz-json-1.1" :: ByteString)])
 
--- | The ID assigned to the 'Evaluation' during creation. This value should be
--- identical to the value of the 'Evaluation' in the request.
-uerEvaluationId :: Lens' UpdateEvaluationResponse (Maybe Text)
-uerEvaluationId = lens _uerEvaluationId (\s a -> s { _uerEvaluationId = a })
+instance ToJSON UpdateEvaluation where
+        toJSON UpdateEvaluation'{..}
+          = object
+              ["EvaluationId" .= _ueEvaluationId,
+               "EvaluationName" .= _ueEvaluationName]
 
 instance ToPath UpdateEvaluation where
-    toPath = const "/"
+        toPath = const "/"
 
 instance ToQuery UpdateEvaluation where
-    toQuery = const mempty
-
-instance ToHeaders UpdateEvaluation
+        toQuery = const mempty
 
-instance ToJSON UpdateEvaluation where
-    toJSON UpdateEvaluation{..} = object
-        [ "EvaluationId"   .= _ueEvaluationId
-        , "EvaluationName" .= _ueEvaluationName
-        ]
+-- | Represents the output of an UpdateEvaluation operation.
+--
+-- You can see the updated content by using the GetEvaluation operation.
+--
+-- /See:/ 'updateEvaluationResponse' smart constructor.
+data UpdateEvaluationResponse = UpdateEvaluationResponse'
+    { _uersEvaluationId :: !(Maybe Text)
+    , _uersStatus       :: !Int
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
 
-instance AWSRequest UpdateEvaluation where
-    type Sv UpdateEvaluation = MachineLearning
-    type Rs UpdateEvaluation = UpdateEvaluationResponse
+-- | Creates a value of 'UpdateEvaluationResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'uersEvaluationId'
+--
+-- * 'uersStatus'
+updateEvaluationResponse
+    :: Int -- ^ 'uersStatus'
+    -> UpdateEvaluationResponse
+updateEvaluationResponse pStatus_ =
+    UpdateEvaluationResponse'
+    { _uersEvaluationId = Nothing
+    , _uersStatus = pStatus_
+    }
 
-    request  = post "UpdateEvaluation"
-    response = jsonResponse
+-- | The ID assigned to the 'Evaluation' during creation. This value should
+-- be identical to the value of the 'Evaluation' in the request.
+uersEvaluationId :: Lens' UpdateEvaluationResponse (Maybe Text)
+uersEvaluationId = lens _uersEvaluationId (\ s a -> s{_uersEvaluationId = a});
 
-instance FromJSON UpdateEvaluationResponse where
-    parseJSON = withObject "UpdateEvaluationResponse" $ \o -> UpdateEvaluationResponse
-        <$> o .:? "EvaluationId"
+-- | The response status code.
+uersStatus :: Lens' UpdateEvaluationResponse Int
+uersStatus = lens _uersStatus (\ s a -> s{_uersStatus = a});
diff --git a/gen/Network/AWS/MachineLearning/UpdateMLModel.hs b/gen/Network/AWS/MachineLearning/UpdateMLModel.hs
--- a/gen/Network/AWS/MachineLearning/UpdateMLModel.hs
+++ b/gen/Network/AWS/MachineLearning/UpdateMLModel.hs
@@ -1,141 +1,160 @@
-{-# 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.MachineLearning.UpdateMLModel
--- 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 'MLModelName' and the 'ScoreThreshold' of an 'MLModel'.
+-- Updates the 'MLModelName' and the 'ScoreThreshold' of an 'MLModel'.
 --
--- You can use the 'GetMLModel' operation to view the contents of the updated
+-- You can use the GetMLModel operation to view the contents of the updated
 -- data element.
 --
--- <http://http://docs.aws.amazon.com/machine-learning/latest/APIReference/API_UpdateMLModel.html>
+-- /See:/ <http://http://docs.aws.amazon.com/machine-learning/latest/APIReference/API_UpdateMLModel.html AWS API Reference> for UpdateMLModel.
 module Network.AWS.MachineLearning.UpdateMLModel
     (
-    -- * Request
-      UpdateMLModel
-    -- ** Request constructor
-    , updateMLModel
-    -- ** Request lenses
-    , umlmMLModelId
+    -- * Creating a Request
+      updateMLModel
+    , UpdateMLModel
+    -- * Request Lenses
     , umlmMLModelName
     , umlmScoreThreshold
+    , umlmMLModelId
 
-    -- * Response
-    , UpdateMLModelResponse
-    -- ** Response constructor
+    -- * Destructuring the Response
     , updateMLModelResponse
-    -- ** Response lenses
-    , umlmrMLModelId
+    , UpdateMLModelResponse
+    -- * Response Lenses
+    , umlmrsMLModelId
+    , umlmrsStatus
     ) where
 
-import Network.AWS.Data (Object)
-import Network.AWS.Prelude
-import Network.AWS.Request.JSON
-import Network.AWS.MachineLearning.Types
-import qualified GHC.Exts
+import           Network.AWS.MachineLearning.Types
+import           Network.AWS.MachineLearning.Types.Product
+import           Network.AWS.Prelude
+import           Network.AWS.Request
+import           Network.AWS.Response
 
-data UpdateMLModel = UpdateMLModel
-    { _umlmMLModelId      :: Text
-    , _umlmMLModelName    :: Maybe Text
-    , _umlmScoreThreshold :: Maybe Double
-    } deriving (Eq, Ord, Read, Show)
+-- | /See:/ 'updateMLModel' smart constructor.
+data UpdateMLModel = UpdateMLModel'
+    { _umlmMLModelName    :: !(Maybe Text)
+    , _umlmScoreThreshold :: !(Maybe Double)
+    , _umlmMLModelId      :: !Text
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
 
--- | 'UpdateMLModel' constructor.
---
--- The fields accessible through corresponding lenses are:
+-- | Creates a value of 'UpdateMLModel' with the minimum fields required to make a request.
 --
--- * 'umlmMLModelId' @::@ 'Text'
+-- Use one of the following lenses to modify other fields as desired:
 --
--- * 'umlmMLModelName' @::@ 'Maybe' 'Text'
+-- * 'umlmMLModelName'
 --
--- * 'umlmScoreThreshold' @::@ 'Maybe' 'Double'
+-- * 'umlmScoreThreshold'
 --
-updateMLModel :: Text -- ^ 'umlmMLModelId'
-              -> UpdateMLModel
-updateMLModel p1 = UpdateMLModel
-    { _umlmMLModelId      = p1
-    , _umlmMLModelName    = Nothing
+-- * 'umlmMLModelId'
+updateMLModel
+    :: Text -- ^ 'umlmMLModelId'
+    -> UpdateMLModel
+updateMLModel pMLModelId_ =
+    UpdateMLModel'
+    { _umlmMLModelName = Nothing
     , _umlmScoreThreshold = Nothing
+    , _umlmMLModelId = pMLModelId_
     }
 
--- | The ID assigned to the 'MLModel' during creation.
-umlmMLModelId :: Lens' UpdateMLModel Text
-umlmMLModelId = lens _umlmMLModelId (\s a -> s { _umlmMLModelId = a })
-
 -- | A user-supplied name or description of the 'MLModel'.
 umlmMLModelName :: Lens' UpdateMLModel (Maybe Text)
-umlmMLModelName = lens _umlmMLModelName (\s a -> s { _umlmMLModelName = a })
+umlmMLModelName = lens _umlmMLModelName (\ s a -> s{_umlmMLModelName = a});
 
--- | The 'ScoreThreshold' used in binary classification 'MLModel' that marks the
--- boundary between a positive prediction and a negative prediction.
+-- | The 'ScoreThreshold' used in binary classification 'MLModel' that marks
+-- the boundary between a positive prediction and a negative prediction.
 --
--- Output values greater than or equal to the 'ScoreThreshold' receive a positive
--- result from the 'MLModel', such as 'true'. Output values less than the 'ScoreThreshold' receive a negative response from the 'MLModel', such as 'false'.
+-- Output values greater than or equal to the 'ScoreThreshold' receive a
+-- positive result from the 'MLModel', such as 'true'. Output values less
+-- than the 'ScoreThreshold' receive a negative response from the
+-- 'MLModel', such as 'false'.
 umlmScoreThreshold :: Lens' UpdateMLModel (Maybe Double)
-umlmScoreThreshold =
-    lens _umlmScoreThreshold (\s a -> s { _umlmScoreThreshold = a })
+umlmScoreThreshold = lens _umlmScoreThreshold (\ s a -> s{_umlmScoreThreshold = a});
 
-newtype UpdateMLModelResponse = UpdateMLModelResponse
-    { _umlmrMLModelId :: Maybe Text
-    } deriving (Eq, Ord, Read, Show, Monoid)
+-- | The ID assigned to the 'MLModel' during creation.
+umlmMLModelId :: Lens' UpdateMLModel Text
+umlmMLModelId = lens _umlmMLModelId (\ s a -> s{_umlmMLModelId = a});
 
--- | 'UpdateMLModelResponse' constructor.
---
--- The fields accessible through corresponding lenses are:
---
--- * 'umlmrMLModelId' @::@ 'Maybe' 'Text'
---
-updateMLModelResponse :: UpdateMLModelResponse
-updateMLModelResponse = UpdateMLModelResponse
-    { _umlmrMLModelId = Nothing
-    }
+instance AWSRequest UpdateMLModel where
+        type Sv UpdateMLModel = MachineLearning
+        type Rs UpdateMLModel = UpdateMLModelResponse
+        request = postJSON
+        response
+          = receiveJSON
+              (\ s h x ->
+                 UpdateMLModelResponse' <$>
+                   (x .?> "MLModelId") <*> (pure (fromEnum s)))
 
--- | The ID assigned to the 'MLModel' during creation. This value should be
--- identical to the value of the 'MLModelID' in the request.
-umlmrMLModelId :: Lens' UpdateMLModelResponse (Maybe Text)
-umlmrMLModelId = lens _umlmrMLModelId (\s a -> s { _umlmrMLModelId = a })
+instance ToHeaders UpdateMLModel where
+        toHeaders
+          = const
+              (mconcat
+                 ["X-Amz-Target" =#
+                    ("AmazonML_20141212.UpdateMLModel" :: ByteString),
+                  "Content-Type" =#
+                    ("application/x-amz-json-1.1" :: ByteString)])
 
+instance ToJSON UpdateMLModel where
+        toJSON UpdateMLModel'{..}
+          = object
+              ["MLModelName" .= _umlmMLModelName,
+               "ScoreThreshold" .= _umlmScoreThreshold,
+               "MLModelId" .= _umlmMLModelId]
+
 instance ToPath UpdateMLModel where
-    toPath = const "/"
+        toPath = const "/"
 
 instance ToQuery UpdateMLModel where
-    toQuery = const mempty
-
-instance ToHeaders UpdateMLModel
+        toQuery = const mempty
 
-instance ToJSON UpdateMLModel where
-    toJSON UpdateMLModel{..} = object
-        [ "MLModelId"      .= _umlmMLModelId
-        , "MLModelName"    .= _umlmMLModelName
-        , "ScoreThreshold" .= _umlmScoreThreshold
-        ]
+-- | Represents the output of an UpdateMLModel operation.
+--
+-- You can see the updated content by using the GetMLModel operation.
+--
+-- /See:/ 'updateMLModelResponse' smart constructor.
+data UpdateMLModelResponse = UpdateMLModelResponse'
+    { _umlmrsMLModelId :: !(Maybe Text)
+    , _umlmrsStatus    :: !Int
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
 
-instance AWSRequest UpdateMLModel where
-    type Sv UpdateMLModel = MachineLearning
-    type Rs UpdateMLModel = UpdateMLModelResponse
+-- | Creates a value of 'UpdateMLModelResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'umlmrsMLModelId'
+--
+-- * 'umlmrsStatus'
+updateMLModelResponse
+    :: Int -- ^ 'umlmrsStatus'
+    -> UpdateMLModelResponse
+updateMLModelResponse pStatus_ =
+    UpdateMLModelResponse'
+    { _umlmrsMLModelId = Nothing
+    , _umlmrsStatus = pStatus_
+    }
 
-    request  = post "UpdateMLModel"
-    response = jsonResponse
+-- | The ID assigned to the 'MLModel' during creation. This value should be
+-- identical to the value of the 'MLModelID' in the request.
+umlmrsMLModelId :: Lens' UpdateMLModelResponse (Maybe Text)
+umlmrsMLModelId = lens _umlmrsMLModelId (\ s a -> s{_umlmrsMLModelId = a});
 
-instance FromJSON UpdateMLModelResponse where
-    parseJSON = withObject "UpdateMLModelResponse" $ \o -> UpdateMLModelResponse
-        <$> o .:? "MLModelId"
+-- | The response status code.
+umlmrsStatus :: Lens' UpdateMLModelResponse Int
+umlmrsStatus = lens _umlmrsStatus (\ s a -> s{_umlmrsStatus = a});
diff --git a/gen/Network/AWS/MachineLearning/Waiters.hs b/gen/Network/AWS/MachineLearning/Waiters.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/AWS/MachineLearning/Waiters.hs
@@ -0,0 +1,104 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE TypeFamilies      #-}
+
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Network.AWS.MachineLearning.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.MachineLearning.Waiters where
+
+import           Network.AWS.MachineLearning.DescribeBatchPredictions
+import           Network.AWS.MachineLearning.DescribeDataSources
+import           Network.AWS.MachineLearning.DescribeEvaluations
+import           Network.AWS.MachineLearning.DescribeMLModels
+import           Network.AWS.MachineLearning.Types
+import           Network.AWS.Prelude
+import           Network.AWS.Waiter
+
+-- | Polls 'Network.AWS.MachineLearning.DescribeMLModels' every 30 seconds until a
+-- successful state is reached. An error is returned after 60 failed checks.
+mLModelAvailable :: Wait DescribeMLModels
+mLModelAvailable =
+    Wait
+    { _waitName = "MLModelAvailable"
+    , _waitAttempts = 60
+    , _waitDelay = 30
+    , _waitAcceptors = [ matchAll
+                             "COMPLETED"
+                             AcceptSuccess
+                             (folding (concatOf dmlmsrsResults) .
+                              mlmStatus . _Just . to toTextCI)
+                       , matchAny
+                             "FAILED"
+                             AcceptFailure
+                             (folding (concatOf dmlmsrsResults) .
+                              mlmStatus . _Just . to toTextCI)]
+    }
+
+-- | Polls 'Network.AWS.MachineLearning.DescribeBatchPredictions' every 30 seconds until a
+-- successful state is reached. An error is returned after 60 failed checks.
+batchPredictionAvailable :: Wait DescribeBatchPredictions
+batchPredictionAvailable =
+    Wait
+    { _waitName = "BatchPredictionAvailable"
+    , _waitAttempts = 60
+    , _waitDelay = 30
+    , _waitAcceptors = [ matchAll
+                             "COMPLETED"
+                             AcceptSuccess
+                             (folding (concatOf drsResults) .
+                              bpStatus . _Just . to toTextCI)
+                       , matchAny
+                             "FAILED"
+                             AcceptFailure
+                             (folding (concatOf drsResults) .
+                              bpStatus . _Just . to toTextCI)]
+    }
+
+-- | Polls 'Network.AWS.MachineLearning.DescribeDataSources' every 30 seconds until a
+-- successful state is reached. An error is returned after 60 failed checks.
+dataSourceAvailable :: Wait DescribeDataSources
+dataSourceAvailable =
+    Wait
+    { _waitName = "DataSourceAvailable"
+    , _waitAttempts = 60
+    , _waitDelay = 30
+    , _waitAcceptors = [ matchAll
+                             "COMPLETED"
+                             AcceptSuccess
+                             (folding (concatOf ddssrsResults) .
+                              dsStatus . _Just . to toTextCI)
+                       , matchAny
+                             "FAILED"
+                             AcceptFailure
+                             (folding (concatOf ddssrsResults) .
+                              dsStatus . _Just . to toTextCI)]
+    }
+
+-- | Polls 'Network.AWS.MachineLearning.DescribeEvaluations' every 30 seconds until a
+-- successful state is reached. An error is returned after 60 failed checks.
+evaluationAvailable :: Wait DescribeEvaluations
+evaluationAvailable =
+    Wait
+    { _waitName = "EvaluationAvailable"
+    , _waitAttempts = 60
+    , _waitDelay = 30
+    , _waitAcceptors = [ matchAll
+                             "COMPLETED"
+                             AcceptSuccess
+                             (folding (concatOf desrsResults) .
+                              eStatus . _Just . to toTextCI)
+                       , matchAny
+                             "FAILED"
+                             AcceptFailure
+                             (folding (concatOf desrsResults) .
+                              eStatus . _Just . to toTextCI)]
+    }
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.MachineLearning
+import Test.AWS.MachineLearning.Internal
+
+main :: IO ()
+main = defaultMain $ testGroup "MachineLearning"
+    [ testGroup "tests"    tests
+    , testGroup "fixtures" fixtures
+    ]
diff --git a/test/Test/AWS/Gen/MachineLearning.hs b/test/Test/AWS/Gen/MachineLearning.hs
new file mode 100644
--- /dev/null
+++ b/test/Test/AWS/Gen/MachineLearning.hs
@@ -0,0 +1,464 @@
+{-# 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.MachineLearning
+-- 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.MachineLearning where
+
+import Data.Proxy
+import Test.AWS.Fixture
+import Test.AWS.Prelude
+import Test.Tasty
+import Network.AWS.MachineLearning
+import Test.AWS.MachineLearning.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"
+--         [ testDeleteDataSource $
+--             deleteDataSource
+--
+--         , testUpdateDataSource $
+--             updateDataSource
+--
+--         , testCreateDataSourceFromRedshift $
+--             createDataSourceFromRedshift
+--
+--         , testCreateDataSourceFromS $
+--             createDataSourceFromS
+--
+--         , testCreateMLModel $
+--             createMLModel
+--
+--         , testDeleteBatchPrediction $
+--             deleteBatchPrediction
+--
+--         , testUpdateBatchPrediction $
+--             updateBatchPrediction
+--
+--         , testGetMLModel $
+--             getMLModel
+--
+--         , testGetDataSource $
+--             getDataSource
+--
+--         , testDeleteMLModel $
+--             deleteMLModel
+--
+--         , testUpdateMLModel $
+--             updateMLModel
+--
+--         , testDescribeBatchPredictions $
+--             describeBatchPredictions
+--
+--         , testUpdateEvaluation $
+--             updateEvaluation
+--
+--         , testDeleteEvaluation $
+--             deleteEvaluation
+--
+--         , testGetBatchPrediction $
+--             getBatchPrediction
+--
+--         , testCreateEvaluation $
+--             createEvaluation
+--
+--         , testCreateDataSourceFromRDS $
+--             createDataSourceFromRDS
+--
+--         , testCreateBatchPrediction $
+--             createBatchPrediction
+--
+--         , testPredict $
+--             predict
+--
+--         , testDeleteRealtimeEndpoint $
+--             deleteRealtimeEndpoint
+--
+--         , testDescribeEvaluations $
+--             describeEvaluations
+--
+--         , testGetEvaluation $
+--             getEvaluation
+--
+--         , testCreateRealtimeEndpoint $
+--             createRealtimeEndpoint
+--
+--         , testDescribeMLModels $
+--             describeMLModels
+--
+--         , testDescribeDataSources $
+--             describeDataSources
+--
+--           ]
+
+--     , testGroup "response"
+--         [ testDeleteDataSourceResponse $
+--             deleteDataSourceResponse
+--
+--         , testUpdateDataSourceResponse $
+--             updateDataSourceResponse
+--
+--         , testCreateDataSourceFromRedshiftResponse $
+--             createDataSourceFromRedshiftResponse
+--
+--         , testCreateDataSourceFromSResponse $
+--             createDataSourceFromSResponse
+--
+--         , testCreateMLModelResponse $
+--             createMLModelResponse
+--
+--         , testDeleteBatchPredictionResponse $
+--             deleteBatchPredictionResponse
+--
+--         , testUpdateBatchPredictionResponse $
+--             updateBatchPredictionResponse
+--
+--         , testGetMLModelResponse $
+--             getMLModelResponse
+--
+--         , testGetDataSourceResponse $
+--             getDataSourceResponse
+--
+--         , testDeleteMLModelResponse $
+--             deleteMLModelResponse
+--
+--         , testUpdateMLModelResponse $
+--             updateMLModelResponse
+--
+--         , testDescribeBatchPredictionsResponse $
+--             describeBatchPredictionsResponse
+--
+--         , testUpdateEvaluationResponse $
+--             updateEvaluationResponse
+--
+--         , testDeleteEvaluationResponse $
+--             deleteEvaluationResponse
+--
+--         , testGetBatchPredictionResponse $
+--             getBatchPredictionResponse
+--
+--         , testCreateEvaluationResponse $
+--             createEvaluationResponse
+--
+--         , testCreateDataSourceFromRDSResponse $
+--             createDataSourceFromRDSResponse
+--
+--         , testCreateBatchPredictionResponse $
+--             createBatchPredictionResponse
+--
+--         , testPredictResponse $
+--             predictResponse
+--
+--         , testDeleteRealtimeEndpointResponse $
+--             deleteRealtimeEndpointResponse
+--
+--         , testDescribeEvaluationsResponse $
+--             describeEvaluationsResponse
+--
+--         , testGetEvaluationResponse $
+--             getEvaluationResponse
+--
+--         , testCreateRealtimeEndpointResponse $
+--             createRealtimeEndpointResponse
+--
+--         , testDescribeMLModelsResponse $
+--             describeMLModelsResponse
+--
+--         , testDescribeDataSourcesResponse $
+--             describeDataSourcesResponse
+--
+--           ]
+--     ]
+
+-- Requests
+
+testDeleteDataSource :: DeleteDataSource -> TestTree
+testDeleteDataSource = req
+    "DeleteDataSource"
+    "fixture/DeleteDataSource"
+
+testUpdateDataSource :: UpdateDataSource -> TestTree
+testUpdateDataSource = req
+    "UpdateDataSource"
+    "fixture/UpdateDataSource"
+
+testCreateDataSourceFromRedshift :: CreateDataSourceFromRedshift -> TestTree
+testCreateDataSourceFromRedshift = req
+    "CreateDataSourceFromRedshift"
+    "fixture/CreateDataSourceFromRedshift"
+
+testCreateDataSourceFromS :: CreateDataSourceFromS -> TestTree
+testCreateDataSourceFromS = req
+    "CreateDataSourceFromS"
+    "fixture/CreateDataSourceFromS"
+
+testCreateMLModel :: CreateMLModel -> TestTree
+testCreateMLModel = req
+    "CreateMLModel"
+    "fixture/CreateMLModel"
+
+testDeleteBatchPrediction :: DeleteBatchPrediction -> TestTree
+testDeleteBatchPrediction = req
+    "DeleteBatchPrediction"
+    "fixture/DeleteBatchPrediction"
+
+testUpdateBatchPrediction :: UpdateBatchPrediction -> TestTree
+testUpdateBatchPrediction = req
+    "UpdateBatchPrediction"
+    "fixture/UpdateBatchPrediction"
+
+testGetMLModel :: GetMLModel -> TestTree
+testGetMLModel = req
+    "GetMLModel"
+    "fixture/GetMLModel"
+
+testGetDataSource :: GetDataSource -> TestTree
+testGetDataSource = req
+    "GetDataSource"
+    "fixture/GetDataSource"
+
+testDeleteMLModel :: DeleteMLModel -> TestTree
+testDeleteMLModel = req
+    "DeleteMLModel"
+    "fixture/DeleteMLModel"
+
+testUpdateMLModel :: UpdateMLModel -> TestTree
+testUpdateMLModel = req
+    "UpdateMLModel"
+    "fixture/UpdateMLModel"
+
+testDescribeBatchPredictions :: DescribeBatchPredictions -> TestTree
+testDescribeBatchPredictions = req
+    "DescribeBatchPredictions"
+    "fixture/DescribeBatchPredictions"
+
+testUpdateEvaluation :: UpdateEvaluation -> TestTree
+testUpdateEvaluation = req
+    "UpdateEvaluation"
+    "fixture/UpdateEvaluation"
+
+testDeleteEvaluation :: DeleteEvaluation -> TestTree
+testDeleteEvaluation = req
+    "DeleteEvaluation"
+    "fixture/DeleteEvaluation"
+
+testGetBatchPrediction :: GetBatchPrediction -> TestTree
+testGetBatchPrediction = req
+    "GetBatchPrediction"
+    "fixture/GetBatchPrediction"
+
+testCreateEvaluation :: CreateEvaluation -> TestTree
+testCreateEvaluation = req
+    "CreateEvaluation"
+    "fixture/CreateEvaluation"
+
+testCreateDataSourceFromRDS :: CreateDataSourceFromRDS -> TestTree
+testCreateDataSourceFromRDS = req
+    "CreateDataSourceFromRDS"
+    "fixture/CreateDataSourceFromRDS"
+
+testCreateBatchPrediction :: CreateBatchPrediction -> TestTree
+testCreateBatchPrediction = req
+    "CreateBatchPrediction"
+    "fixture/CreateBatchPrediction"
+
+testPredict :: Predict -> TestTree
+testPredict = req
+    "Predict"
+    "fixture/Predict"
+
+testDeleteRealtimeEndpoint :: DeleteRealtimeEndpoint -> TestTree
+testDeleteRealtimeEndpoint = req
+    "DeleteRealtimeEndpoint"
+    "fixture/DeleteRealtimeEndpoint"
+
+testDescribeEvaluations :: DescribeEvaluations -> TestTree
+testDescribeEvaluations = req
+    "DescribeEvaluations"
+    "fixture/DescribeEvaluations"
+
+testGetEvaluation :: GetEvaluation -> TestTree
+testGetEvaluation = req
+    "GetEvaluation"
+    "fixture/GetEvaluation"
+
+testCreateRealtimeEndpoint :: CreateRealtimeEndpoint -> TestTree
+testCreateRealtimeEndpoint = req
+    "CreateRealtimeEndpoint"
+    "fixture/CreateRealtimeEndpoint"
+
+testDescribeMLModels :: DescribeMLModels -> TestTree
+testDescribeMLModels = req
+    "DescribeMLModels"
+    "fixture/DescribeMLModels"
+
+testDescribeDataSources :: DescribeDataSources -> TestTree
+testDescribeDataSources = req
+    "DescribeDataSources"
+    "fixture/DescribeDataSources"
+
+-- Responses
+
+testDeleteDataSourceResponse :: DeleteDataSourceResponse -> TestTree
+testDeleteDataSourceResponse = res
+    "DeleteDataSourceResponse"
+    "fixture/DeleteDataSourceResponse"
+    (Proxy :: Proxy DeleteDataSource)
+
+testUpdateDataSourceResponse :: UpdateDataSourceResponse -> TestTree
+testUpdateDataSourceResponse = res
+    "UpdateDataSourceResponse"
+    "fixture/UpdateDataSourceResponse"
+    (Proxy :: Proxy UpdateDataSource)
+
+testCreateDataSourceFromRedshiftResponse :: CreateDataSourceFromRedshiftResponse -> TestTree
+testCreateDataSourceFromRedshiftResponse = res
+    "CreateDataSourceFromRedshiftResponse"
+    "fixture/CreateDataSourceFromRedshiftResponse"
+    (Proxy :: Proxy CreateDataSourceFromRedshift)
+
+testCreateDataSourceFromSResponse :: CreateDataSourceFromSResponse -> TestTree
+testCreateDataSourceFromSResponse = res
+    "CreateDataSourceFromSResponse"
+    "fixture/CreateDataSourceFromSResponse"
+    (Proxy :: Proxy CreateDataSourceFromS)
+
+testCreateMLModelResponse :: CreateMLModelResponse -> TestTree
+testCreateMLModelResponse = res
+    "CreateMLModelResponse"
+    "fixture/CreateMLModelResponse"
+    (Proxy :: Proxy CreateMLModel)
+
+testDeleteBatchPredictionResponse :: DeleteBatchPredictionResponse -> TestTree
+testDeleteBatchPredictionResponse = res
+    "DeleteBatchPredictionResponse"
+    "fixture/DeleteBatchPredictionResponse"
+    (Proxy :: Proxy DeleteBatchPrediction)
+
+testUpdateBatchPredictionResponse :: UpdateBatchPredictionResponse -> TestTree
+testUpdateBatchPredictionResponse = res
+    "UpdateBatchPredictionResponse"
+    "fixture/UpdateBatchPredictionResponse"
+    (Proxy :: Proxy UpdateBatchPrediction)
+
+testGetMLModelResponse :: GetMLModelResponse -> TestTree
+testGetMLModelResponse = res
+    "GetMLModelResponse"
+    "fixture/GetMLModelResponse"
+    (Proxy :: Proxy GetMLModel)
+
+testGetDataSourceResponse :: GetDataSourceResponse -> TestTree
+testGetDataSourceResponse = res
+    "GetDataSourceResponse"
+    "fixture/GetDataSourceResponse"
+    (Proxy :: Proxy GetDataSource)
+
+testDeleteMLModelResponse :: DeleteMLModelResponse -> TestTree
+testDeleteMLModelResponse = res
+    "DeleteMLModelResponse"
+    "fixture/DeleteMLModelResponse"
+    (Proxy :: Proxy DeleteMLModel)
+
+testUpdateMLModelResponse :: UpdateMLModelResponse -> TestTree
+testUpdateMLModelResponse = res
+    "UpdateMLModelResponse"
+    "fixture/UpdateMLModelResponse"
+    (Proxy :: Proxy UpdateMLModel)
+
+testDescribeBatchPredictionsResponse :: DescribeBatchPredictionsResponse -> TestTree
+testDescribeBatchPredictionsResponse = res
+    "DescribeBatchPredictionsResponse"
+    "fixture/DescribeBatchPredictionsResponse"
+    (Proxy :: Proxy DescribeBatchPredictions)
+
+testUpdateEvaluationResponse :: UpdateEvaluationResponse -> TestTree
+testUpdateEvaluationResponse = res
+    "UpdateEvaluationResponse"
+    "fixture/UpdateEvaluationResponse"
+    (Proxy :: Proxy UpdateEvaluation)
+
+testDeleteEvaluationResponse :: DeleteEvaluationResponse -> TestTree
+testDeleteEvaluationResponse = res
+    "DeleteEvaluationResponse"
+    "fixture/DeleteEvaluationResponse"
+    (Proxy :: Proxy DeleteEvaluation)
+
+testGetBatchPredictionResponse :: GetBatchPredictionResponse -> TestTree
+testGetBatchPredictionResponse = res
+    "GetBatchPredictionResponse"
+    "fixture/GetBatchPredictionResponse"
+    (Proxy :: Proxy GetBatchPrediction)
+
+testCreateEvaluationResponse :: CreateEvaluationResponse -> TestTree
+testCreateEvaluationResponse = res
+    "CreateEvaluationResponse"
+    "fixture/CreateEvaluationResponse"
+    (Proxy :: Proxy CreateEvaluation)
+
+testCreateDataSourceFromRDSResponse :: CreateDataSourceFromRDSResponse -> TestTree
+testCreateDataSourceFromRDSResponse = res
+    "CreateDataSourceFromRDSResponse"
+    "fixture/CreateDataSourceFromRDSResponse"
+    (Proxy :: Proxy CreateDataSourceFromRDS)
+
+testCreateBatchPredictionResponse :: CreateBatchPredictionResponse -> TestTree
+testCreateBatchPredictionResponse = res
+    "CreateBatchPredictionResponse"
+    "fixture/CreateBatchPredictionResponse"
+    (Proxy :: Proxy CreateBatchPrediction)
+
+testPredictResponse :: PredictResponse -> TestTree
+testPredictResponse = res
+    "PredictResponse"
+    "fixture/PredictResponse"
+    (Proxy :: Proxy Predict)
+
+testDeleteRealtimeEndpointResponse :: DeleteRealtimeEndpointResponse -> TestTree
+testDeleteRealtimeEndpointResponse = res
+    "DeleteRealtimeEndpointResponse"
+    "fixture/DeleteRealtimeEndpointResponse"
+    (Proxy :: Proxy DeleteRealtimeEndpoint)
+
+testDescribeEvaluationsResponse :: DescribeEvaluationsResponse -> TestTree
+testDescribeEvaluationsResponse = res
+    "DescribeEvaluationsResponse"
+    "fixture/DescribeEvaluationsResponse"
+    (Proxy :: Proxy DescribeEvaluations)
+
+testGetEvaluationResponse :: GetEvaluationResponse -> TestTree
+testGetEvaluationResponse = res
+    "GetEvaluationResponse"
+    "fixture/GetEvaluationResponse"
+    (Proxy :: Proxy GetEvaluation)
+
+testCreateRealtimeEndpointResponse :: CreateRealtimeEndpointResponse -> TestTree
+testCreateRealtimeEndpointResponse = res
+    "CreateRealtimeEndpointResponse"
+    "fixture/CreateRealtimeEndpointResponse"
+    (Proxy :: Proxy CreateRealtimeEndpoint)
+
+testDescribeMLModelsResponse :: DescribeMLModelsResponse -> TestTree
+testDescribeMLModelsResponse = res
+    "DescribeMLModelsResponse"
+    "fixture/DescribeMLModelsResponse"
+    (Proxy :: Proxy DescribeMLModels)
+
+testDescribeDataSourcesResponse :: DescribeDataSourcesResponse -> TestTree
+testDescribeDataSourcesResponse = res
+    "DescribeDataSourcesResponse"
+    "fixture/DescribeDataSourcesResponse"
+    (Proxy :: Proxy DescribeDataSources)
diff --git a/test/Test/AWS/MachineLearning.hs b/test/Test/AWS/MachineLearning.hs
new file mode 100644
--- /dev/null
+++ b/test/Test/AWS/MachineLearning.hs
@@ -0,0 +1,26 @@
+{-# LANGUAGE OverloadedStrings #-}
+
+-- Module      : Test.AWS.MachineLearning
+-- 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.MachineLearning
+    ( tests
+    , fixtures
+    ) where
+
+import           Network.AWS.MachineLearning
+import           Test.AWS.Gen.MachineLearning
+import           Test.Tasty
+
+tests :: [TestTree]
+tests = []
+
+fixtures :: [TestTree]
+fixtures = []
diff --git a/test/Test/AWS/MachineLearning/Internal.hs b/test/Test/AWS/MachineLearning/Internal.hs
new file mode 100644
--- /dev/null
+++ b/test/Test/AWS/MachineLearning/Internal.hs
@@ -0,0 +1,16 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+
+-- Module      : Test.AWS.MachineLearning.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.MachineLearning.Internal where
+
+import Test.AWS.Prelude
