diff --git a/amazonka-datapipeline.cabal b/amazonka-datapipeline.cabal
--- a/amazonka-datapipeline.cabal
+++ b/amazonka-datapipeline.cabal
@@ -1,5 +1,5 @@
 name:                  amazonka-datapipeline
-version:               0.0.6
+version:               0.0.7
 synopsis:              Amazon Data Pipeline SDK.
 homepage:              https://github.com/brendanhay/amazonka
 license:               OtherLicense
@@ -57,5 +57,5 @@
     other-modules:
 
     build-depends:
-          amazonka-core == 0.0.6.*
+          amazonka-core == 0.0.7.*
         , base          >= 4.7     && < 5
diff --git a/gen/Network/AWS/DataPipeline/ActivatePipeline.hs b/gen/Network/AWS/DataPipeline/ActivatePipeline.hs
--- a/gen/Network/AWS/DataPipeline/ActivatePipeline.hs
+++ b/gen/Network/AWS/DataPipeline/ActivatePipeline.hs
@@ -23,7 +23,8 @@
 -- Derived from AWS service descriptions, licensed under Apache 2.0.
 
 -- | Validates a pipeline and initiates processing. If the pipeline does not pass
--- validation, activation fails.
+-- validation, activation fails. You cannot perform this operation on FINISHED
+-- pipelines and attempting to do so will return an InvalidRequestException.
 --
 -- Call this action to start processing pipeline tasks of a pipeline you've
 -- created using the 'CreatePipeline' and 'PutPipelineDefinition' actions. A
@@ -37,6 +38,7 @@
     -- ** Request constructor
     , activatePipeline
     -- ** Request lenses
+    , apParameterValues
     , apPipelineId
 
     -- * Response
@@ -50,22 +52,32 @@
 import Network.AWS.DataPipeline.Types
 import qualified GHC.Exts
 
-newtype ActivatePipeline = ActivatePipeline
-    { _apPipelineId :: Text
-    } deriving (Eq, Ord, Show, Monoid, IsString)
+data ActivatePipeline = ActivatePipeline
+    { _apParameterValues :: List "parameterValues" ParameterValue
+    , _apPipelineId      :: Text
+    } deriving (Eq, Show)
 
 -- | 'ActivatePipeline' constructor.
 --
 -- The fields accessible through corresponding lenses are:
 --
+-- * 'apParameterValues' @::@ ['ParameterValue']
+--
 -- * 'apPipelineId' @::@ 'Text'
 --
 activatePipeline :: Text -- ^ 'apPipelineId'
                  -> ActivatePipeline
 activatePipeline p1 = ActivatePipeline
-    { _apPipelineId = p1
+    { _apPipelineId      = p1
+    , _apParameterValues = mempty
     }
 
+-- | Returns a list of parameter values to pass to the pipeline at activation.
+apParameterValues :: Lens' ActivatePipeline [ParameterValue]
+apParameterValues =
+    lens _apParameterValues (\s a -> s { _apParameterValues = a })
+        . _List
+
 -- | The identifier of the pipeline to activate.
 apPipelineId :: Lens' ActivatePipeline Text
 apPipelineId = lens _apPipelineId (\s a -> s { _apPipelineId = a })
@@ -87,7 +99,8 @@
 
 instance ToJSON ActivatePipeline where
     toJSON ActivatePipeline{..} = object
-        [ "pipelineId" .= _apPipelineId
+        [ "pipelineId"      .= _apPipelineId
+        , "parameterValues" .= _apParameterValues
         ]
 
 instance AWSRequest ActivatePipeline where
diff --git a/gen/Network/AWS/DataPipeline/DescribeObjects.hs b/gen/Network/AWS/DataPipeline/DescribeObjects.hs
--- a/gen/Network/AWS/DataPipeline/DescribeObjects.hs
+++ b/gen/Network/AWS/DataPipeline/DescribeObjects.hs
@@ -169,7 +169,7 @@
     parseJSON = withObject "DescribeObjectsResponse" $ \o -> DescribeObjectsResponse
         <$> o .:? "hasMoreResults"
         <*> o .:? "marker"
-        <*> o .:  "pipelineObjects"
+        <*> o .:? "pipelineObjects" .!= mempty
 
 instance AWSPager DescribeObjects where
     page rq rs
diff --git a/gen/Network/AWS/DataPipeline/DescribePipelines.hs b/gen/Network/AWS/DataPipeline/DescribePipelines.hs
--- a/gen/Network/AWS/DataPipeline/DescribePipelines.hs
+++ b/gen/Network/AWS/DataPipeline/DescribePipelines.hs
@@ -132,4 +132,4 @@
 
 instance FromJSON DescribePipelinesResponse where
     parseJSON = withObject "DescribePipelinesResponse" $ \o -> DescribePipelinesResponse
-        <$> o .:  "pipelineDescriptionList"
+        <$> o .:? "pipelineDescriptionList" .!= mempty
diff --git a/gen/Network/AWS/DataPipeline/GetPipelineDefinition.hs b/gen/Network/AWS/DataPipeline/GetPipelineDefinition.hs
--- a/gen/Network/AWS/DataPipeline/GetPipelineDefinition.hs
+++ b/gen/Network/AWS/DataPipeline/GetPipelineDefinition.hs
@@ -40,6 +40,8 @@
     -- ** Response constructor
     , getPipelineDefinitionResponse
     -- ** Response lenses
+    , gpdrParameterObjects
+    , gpdrParameterValues
     , gpdrPipelineObjects
     ) where
 
@@ -79,27 +81,41 @@
 gpdVersion :: Lens' GetPipelineDefinition (Maybe Text)
 gpdVersion = lens _gpdVersion (\s a -> s { _gpdVersion = a })
 
-newtype GetPipelineDefinitionResponse = GetPipelineDefinitionResponse
-    { _gpdrPipelineObjects :: List "pipelineObjects" PipelineObject
-    } deriving (Eq, Show, Monoid, Semigroup)
-
-instance GHC.Exts.IsList GetPipelineDefinitionResponse where
-    type Item GetPipelineDefinitionResponse = PipelineObject
-
-    fromList = GetPipelineDefinitionResponse . GHC.Exts.fromList
-    toList   = GHC.Exts.toList . _gpdrPipelineObjects
+data GetPipelineDefinitionResponse = GetPipelineDefinitionResponse
+    { _gpdrParameterObjects :: List "parameterObjects" ParameterObject
+    , _gpdrParameterValues  :: List "parameterValues" ParameterValue
+    , _gpdrPipelineObjects  :: List "pipelineObjects" PipelineObject
+    } deriving (Eq, Show)
 
 -- | 'GetPipelineDefinitionResponse' constructor.
 --
 -- The fields accessible through corresponding lenses are:
 --
+-- * 'gpdrParameterObjects' @::@ ['ParameterObject']
+--
+-- * 'gpdrParameterValues' @::@ ['ParameterValue']
+--
 -- * 'gpdrPipelineObjects' @::@ ['PipelineObject']
 --
 getPipelineDefinitionResponse :: GetPipelineDefinitionResponse
 getPipelineDefinitionResponse = GetPipelineDefinitionResponse
-    { _gpdrPipelineObjects = mempty
+    { _gpdrPipelineObjects  = mempty
+    , _gpdrParameterObjects = mempty
+    , _gpdrParameterValues  = mempty
     }
 
+-- | Returns a list of parameter objects used in the pipeline definition.
+gpdrParameterObjects :: Lens' GetPipelineDefinitionResponse [ParameterObject]
+gpdrParameterObjects =
+    lens _gpdrParameterObjects (\s a -> s { _gpdrParameterObjects = a })
+        . _List
+
+-- | Returns a list of parameter values used in the pipeline definition.
+gpdrParameterValues :: Lens' GetPipelineDefinitionResponse [ParameterValue]
+gpdrParameterValues =
+    lens _gpdrParameterValues (\s a -> s { _gpdrParameterValues = a })
+        . _List
+
 -- | An array of objects defined in the pipeline.
 gpdrPipelineObjects :: Lens' GetPipelineDefinitionResponse [PipelineObject]
 gpdrPipelineObjects =
@@ -129,4 +145,6 @@
 
 instance FromJSON GetPipelineDefinitionResponse where
     parseJSON = withObject "GetPipelineDefinitionResponse" $ \o -> GetPipelineDefinitionResponse
-        <$> o .:  "pipelineObjects"
+        <$> o .:? "parameterObjects" .!= mempty
+        <*> o .:? "parameterValues" .!= mempty
+        <*> o .:? "pipelineObjects" .!= mempty
diff --git a/gen/Network/AWS/DataPipeline/ListPipelines.hs b/gen/Network/AWS/DataPipeline/ListPipelines.hs
--- a/gen/Network/AWS/DataPipeline/ListPipelines.hs
+++ b/gen/Network/AWS/DataPipeline/ListPipelines.hs
@@ -136,7 +136,7 @@
     parseJSON = withObject "ListPipelinesResponse" $ \o -> ListPipelinesResponse
         <$> o .:? "hasMoreResults"
         <*> o .:? "marker"
-        <*> o .:  "pipelineIdList"
+        <*> o .:? "pipelineIdList" .!= mempty
 
 instance AWSPager ListPipelines where
     page rq rs
diff --git a/gen/Network/AWS/DataPipeline/PollForTask.hs b/gen/Network/AWS/DataPipeline/PollForTask.hs
--- a/gen/Network/AWS/DataPipeline/PollForTask.hs
+++ b/gen/Network/AWS/DataPipeline/PollForTask.hs
@@ -121,12 +121,11 @@
     { _pftrTaskObject = Nothing
     }
 
--- | An instance of 'PollForTaskResult', which contains an instance of 'TaskObject'.
--- The returned object contains all the information needed to complete the task
--- that is being assigned to the task runner. One of the fields returned in this
--- object is taskId, which contains an identifier for the task being assigned.
--- The calling task runner uses taskId in subsequent calls to 'ReportTaskProgress'
--- and 'SetTaskStatus'.
+-- | An instance of 'TaskObject'. The returned object contains all the information
+-- needed to complete the task that is being assigned to the task runner. One of
+-- the fields returned in this object is taskId, which contains an identifier
+-- for the task being assigned. The calling task runner uses taskId in
+-- subsequent calls to 'ReportTaskProgress' and 'SetTaskStatus'.
 pftrTaskObject :: Lens' PollForTaskResponse (Maybe TaskObject)
 pftrTaskObject = lens _pftrTaskObject (\s a -> s { _pftrTaskObject = a })
 
diff --git a/gen/Network/AWS/DataPipeline/PutPipelineDefinition.hs b/gen/Network/AWS/DataPipeline/PutPipelineDefinition.hs
--- a/gen/Network/AWS/DataPipeline/PutPipelineDefinition.hs
+++ b/gen/Network/AWS/DataPipeline/PutPipelineDefinition.hs
@@ -29,7 +29,8 @@
 -- pipeline. Changes to the pipeline are saved unless one of the following three
 -- validation errors exists in the pipeline.  An object is missing a name or
 -- identifier field. A string or reference field is empty. The number of objects
--- in the pipeline exceeds the maximum allowed objects.
+-- in the pipeline exceeds the maximum allowed objects. The pipeline is in a
+-- FINISHED state.
 --
 -- Pipeline object definitions are passed to the 'PutPipelineDefinition' action
 -- and returned by the 'GetPipelineDefinition' action.
@@ -42,6 +43,8 @@
     -- ** Request constructor
     , putPipelineDefinition
     -- ** Request lenses
+    , ppdParameterObjects
+    , ppdParameterValues
     , ppdPipelineId
     , ppdPipelineObjects
 
@@ -61,14 +64,20 @@
 import qualified GHC.Exts
 
 data PutPipelineDefinition = PutPipelineDefinition
-    { _ppdPipelineId      :: Text
-    , _ppdPipelineObjects :: List "pipelineObjects" PipelineObject
+    { _ppdParameterObjects :: List "parameterObjects" ParameterObject
+    , _ppdParameterValues  :: List "parameterValues" ParameterValue
+    , _ppdPipelineId       :: Text
+    , _ppdPipelineObjects  :: List "pipelineObjects" PipelineObject
     } deriving (Eq, Show)
 
 -- | 'PutPipelineDefinition' constructor.
 --
 -- The fields accessible through corresponding lenses are:
 --
+-- * 'ppdParameterObjects' @::@ ['ParameterObject']
+--
+-- * 'ppdParameterValues' @::@ ['ParameterValue']
+--
 -- * 'ppdPipelineId' @::@ 'Text'
 --
 -- * 'ppdPipelineObjects' @::@ ['PipelineObject']
@@ -76,10 +85,24 @@
 putPipelineDefinition :: Text -- ^ 'ppdPipelineId'
                       -> PutPipelineDefinition
 putPipelineDefinition p1 = PutPipelineDefinition
-    { _ppdPipelineId      = p1
-    , _ppdPipelineObjects = mempty
+    { _ppdPipelineId       = p1
+    , _ppdPipelineObjects  = mempty
+    , _ppdParameterObjects = mempty
+    , _ppdParameterValues  = mempty
     }
 
+-- | A list of parameter objects used with the pipeline.
+ppdParameterObjects :: Lens' PutPipelineDefinition [ParameterObject]
+ppdParameterObjects =
+    lens _ppdParameterObjects (\s a -> s { _ppdParameterObjects = a })
+        . _List
+
+-- | A list of parameter values used with the pipeline.
+ppdParameterValues :: Lens' PutPipelineDefinition [ParameterValue]
+ppdParameterValues =
+    lens _ppdParameterValues (\s a -> s { _ppdParameterValues = a })
+        . _List
+
 -- | The identifier of the pipeline to be configured.
 ppdPipelineId :: Lens' PutPipelineDefinition Text
 ppdPipelineId = lens _ppdPipelineId (\s a -> s { _ppdPipelineId = a })
@@ -145,8 +168,10 @@
 
 instance ToJSON PutPipelineDefinition where
     toJSON PutPipelineDefinition{..} = object
-        [ "pipelineId"      .= _ppdPipelineId
-        , "pipelineObjects" .= _ppdPipelineObjects
+        [ "pipelineId"       .= _ppdPipelineId
+        , "pipelineObjects"  .= _ppdPipelineObjects
+        , "parameterObjects" .= _ppdParameterObjects
+        , "parameterValues"  .= _ppdParameterValues
         ]
 
 instance AWSRequest PutPipelineDefinition where
@@ -159,5 +184,5 @@
 instance FromJSON PutPipelineDefinitionResponse where
     parseJSON = withObject "PutPipelineDefinitionResponse" $ \o -> PutPipelineDefinitionResponse
         <$> o .:  "errored"
-        <*> o .:  "validationErrors"
-        <*> o .:  "validationWarnings"
+        <*> o .:? "validationErrors" .!= mempty
+        <*> o .:? "validationWarnings" .!= mempty
diff --git a/gen/Network/AWS/DataPipeline/QueryObjects.hs b/gen/Network/AWS/DataPipeline/QueryObjects.hs
--- a/gen/Network/AWS/DataPipeline/QueryObjects.hs
+++ b/gen/Network/AWS/DataPipeline/QueryObjects.hs
@@ -184,7 +184,7 @@
 instance FromJSON QueryObjectsResponse where
     parseJSON = withObject "QueryObjectsResponse" $ \o -> QueryObjectsResponse
         <$> o .:? "hasMoreResults"
-        <*> o .:  "ids"
+        <*> o .:? "ids" .!= mempty
         <*> o .:? "marker"
 
 instance AWSPager QueryObjects where
diff --git a/gen/Network/AWS/DataPipeline/ReportTaskProgress.hs b/gen/Network/AWS/DataPipeline/ReportTaskProgress.hs
--- a/gen/Network/AWS/DataPipeline/ReportTaskProgress.hs
+++ b/gen/Network/AWS/DataPipeline/ReportTaskProgress.hs
@@ -43,6 +43,7 @@
     -- ** Request constructor
     , reportTaskProgress
     -- ** Request lenses
+    , rtpFields
     , rtpTaskId
 
     -- * Response
@@ -58,22 +59,31 @@
 import Network.AWS.DataPipeline.Types
 import qualified GHC.Exts
 
-newtype ReportTaskProgress = ReportTaskProgress
-    { _rtpTaskId :: Text
-    } deriving (Eq, Ord, Show, Monoid, IsString)
+data ReportTaskProgress = ReportTaskProgress
+    { _rtpFields :: List "fields" Field
+    , _rtpTaskId :: Text
+    } deriving (Eq, Show)
 
 -- | 'ReportTaskProgress' constructor.
 --
 -- The fields accessible through corresponding lenses are:
 --
+-- * 'rtpFields' @::@ ['Field']
+--
 -- * 'rtpTaskId' @::@ 'Text'
 --
 reportTaskProgress :: Text -- ^ 'rtpTaskId'
                    -> ReportTaskProgress
 reportTaskProgress p1 = ReportTaskProgress
     { _rtpTaskId = p1
+    , _rtpFields = mempty
     }
 
+-- | Key-value pairs that define the properties of the ReportTaskProgressInput
+-- object.
+rtpFields :: Lens' ReportTaskProgress [Field]
+rtpFields = lens _rtpFields (\s a -> s { _rtpFields = a }) . _List
+
 -- | Identifier of the task assigned to the task runner. This value is provided in
 -- the 'TaskObject' that the service returns with the response for the 'PollForTask'
 -- action.
@@ -112,6 +122,7 @@
 instance ToJSON ReportTaskProgress where
     toJSON ReportTaskProgress{..} = object
         [ "taskId" .= _rtpTaskId
+        , "fields" .= _rtpFields
         ]
 
 instance AWSRequest ReportTaskProgress where
diff --git a/gen/Network/AWS/DataPipeline/SetStatus.hs b/gen/Network/AWS/DataPipeline/SetStatus.hs
--- a/gen/Network/AWS/DataPipeline/SetStatus.hs
+++ b/gen/Network/AWS/DataPipeline/SetStatus.hs
@@ -25,7 +25,9 @@
 -- | Requests that the status of an array of physical or logical pipeline objects
 -- be updated in the pipeline. This update may not occur immediately, but is
 -- eventually consistent. The status that can be set depends on the type of
--- object.
+-- object, e.g. DataNode or Activity. You cannot perform this operation on
+-- FINISHED pipelines and attempting to do so will return an
+-- InvalidRequestException.
 --
 -- <http://docs.aws.amazon.com/datapipeline/latest/APIReference/API_SetStatus.html>
 module Network.AWS.DataPipeline.SetStatus
diff --git a/gen/Network/AWS/DataPipeline/Types.hs b/gen/Network/AWS/DataPipeline/Types.hs
--- a/gen/Network/AWS/DataPipeline/Types.hs
+++ b/gen/Network/AWS/DataPipeline/Types.hs
@@ -29,12 +29,18 @@
     -- ** Error
     , JSONError
 
+    -- * ParameterObject
+    , ParameterObject
+    , parameterObject
+    , poAttributes
+    , poId
+
     -- * PipelineObject
     , PipelineObject
     , pipelineObject
-    , poFields
-    , poId
-    , poName
+    , po1Fields
+    , po1Id
+    , po1Name
 
     -- * Field
     , Field
@@ -43,12 +49,24 @@
     , fRefValue
     , fStringValue
 
+    -- * ParameterValue
+    , ParameterValue
+    , parameterValue
+    , pvId
+    , pvStringValue
+
     -- * Selector
     , Selector
     , selector
     , sFieldName
     , sOperator
 
+    -- * ParameterAttribute
+    , ParameterAttribute
+    , parameterAttribute
+    , paKey
+    , paStringValue
+
     -- * Operator
     , Operator
     , operator
@@ -130,54 +148,93 @@
 
     handle = jsonError statusSuccess
 
+data ParameterObject = ParameterObject
+    { _poAttributes :: List "attributes" ParameterAttribute
+    , _poId         :: Text
+    } deriving (Eq, Show)
+
+-- | 'ParameterObject' constructor.
+--
+-- The fields accessible through corresponding lenses are:
+--
+-- * 'poAttributes' @::@ ['ParameterAttribute']
+--
+-- * 'poId' @::@ 'Text'
+--
+parameterObject :: Text -- ^ 'poId'
+                -> ParameterObject
+parameterObject p1 = ParameterObject
+    { _poId         = p1
+    , _poAttributes = mempty
+    }
+
+-- | The attributes of the parameter object.
+poAttributes :: Lens' ParameterObject [ParameterAttribute]
+poAttributes = lens _poAttributes (\s a -> s { _poAttributes = a }) . _List
+
+-- | Identifier of the parameter object.
+poId :: Lens' ParameterObject Text
+poId = lens _poId (\s a -> s { _poId = a })
+
+instance FromJSON ParameterObject where
+    parseJSON = withObject "ParameterObject" $ \o -> ParameterObject
+        <$> o .:? "attributes" .!= mempty
+        <*> o .:  "id"
+
+instance ToJSON ParameterObject where
+    toJSON ParameterObject{..} = object
+        [ "id"         .= _poId
+        , "attributes" .= _poAttributes
+        ]
+
 data PipelineObject = PipelineObject
-    { _poFields :: List "fields" Field
-    , _poId     :: Text
-    , _poName   :: Text
+    { _po1Fields :: List "fields" Field
+    , _po1Id     :: Text
+    , _po1Name   :: Text
     } deriving (Eq, Show)
 
 -- | 'PipelineObject' constructor.
 --
 -- The fields accessible through corresponding lenses are:
 --
--- * 'poFields' @::@ ['Field']
+-- * 'po1Fields' @::@ ['Field']
 --
--- * 'poId' @::@ 'Text'
+-- * 'po1Id' @::@ 'Text'
 --
--- * 'poName' @::@ 'Text'
+-- * 'po1Name' @::@ 'Text'
 --
-pipelineObject :: Text -- ^ 'poId'
-               -> Text -- ^ 'poName'
+pipelineObject :: Text -- ^ 'po1Id'
+               -> Text -- ^ 'po1Name'
                -> PipelineObject
 pipelineObject p1 p2 = PipelineObject
-    { _poId     = p1
-    , _poName   = p2
-    , _poFields = mempty
+    { _po1Id     = p1
+    , _po1Name   = p2
+    , _po1Fields = mempty
     }
 
 -- | Key-value pairs that define the properties of the object.
-poFields :: Lens' PipelineObject [Field]
-poFields = lens _poFields (\s a -> s { _poFields = a }) . _List
+po1Fields :: Lens' PipelineObject [Field]
+po1Fields = lens _po1Fields (\s a -> s { _po1Fields = a }) . _List
 
 -- | Identifier of the object.
-poId :: Lens' PipelineObject Text
-poId = lens _poId (\s a -> s { _poId = a })
+po1Id :: Lens' PipelineObject Text
+po1Id = lens _po1Id (\s a -> s { _po1Id = a })
 
 -- | Name of the object.
-poName :: Lens' PipelineObject Text
-poName = lens _poName (\s a -> s { _poName = a })
+po1Name :: Lens' PipelineObject Text
+po1Name = lens _po1Name (\s a -> s { _po1Name = a })
 
 instance FromJSON PipelineObject where
     parseJSON = withObject "PipelineObject" $ \o -> PipelineObject
-        <$> o .:  "fields"
+        <$> o .:? "fields" .!= mempty
         <*> o .:  "id"
         <*> o .:  "name"
 
 instance ToJSON PipelineObject where
     toJSON PipelineObject{..} = object
-        [ "id"     .= _poId
-        , "name"   .= _poName
-        , "fields" .= _poFields
+        [ "id"     .= _po1Id
+        , "name"   .= _po1Name
+        , "fields" .= _po1Fields
         ]
 
 data Field = Field
@@ -229,6 +286,46 @@
         , "refValue"    .= _fRefValue
         ]
 
+data ParameterValue = ParameterValue
+    { _pvId          :: Text
+    , _pvStringValue :: Text
+    } deriving (Eq, Ord, Show)
+
+-- | 'ParameterValue' constructor.
+--
+-- The fields accessible through corresponding lenses are:
+--
+-- * 'pvId' @::@ 'Text'
+--
+-- * 'pvStringValue' @::@ 'Text'
+--
+parameterValue :: Text -- ^ 'pvId'
+               -> Text -- ^ 'pvStringValue'
+               -> ParameterValue
+parameterValue p1 p2 = ParameterValue
+    { _pvId          = p1
+    , _pvStringValue = p2
+    }
+
+-- | Identifier of the parameter value.
+pvId :: Lens' ParameterValue Text
+pvId = lens _pvId (\s a -> s { _pvId = a })
+
+-- | The field value, expressed as a String.
+pvStringValue :: Lens' ParameterValue Text
+pvStringValue = lens _pvStringValue (\s a -> s { _pvStringValue = a })
+
+instance FromJSON ParameterValue where
+    parseJSON = withObject "ParameterValue" $ \o -> ParameterValue
+        <$> o .:  "id"
+        <*> o .:  "stringValue"
+
+instance ToJSON ParameterValue where
+    toJSON ParameterValue{..} = object
+        [ "id"          .= _pvId
+        , "stringValue" .= _pvStringValue
+        ]
+
 data Selector = Selector
     { _sFieldName :: Maybe Text
     , _sOperator  :: Maybe Operator
@@ -269,6 +366,46 @@
         , "operator"  .= _sOperator
         ]
 
+data ParameterAttribute = ParameterAttribute
+    { _paKey         :: Text
+    , _paStringValue :: Text
+    } deriving (Eq, Ord, Show)
+
+-- | 'ParameterAttribute' constructor.
+--
+-- The fields accessible through corresponding lenses are:
+--
+-- * 'paKey' @::@ 'Text'
+--
+-- * 'paStringValue' @::@ 'Text'
+--
+parameterAttribute :: Text -- ^ 'paKey'
+                   -> Text -- ^ 'paStringValue'
+                   -> ParameterAttribute
+parameterAttribute p1 p2 = ParameterAttribute
+    { _paKey         = p1
+    , _paStringValue = p2
+    }
+
+-- | The field identifier.
+paKey :: Lens' ParameterAttribute Text
+paKey = lens _paKey (\s a -> s { _paKey = a })
+
+-- | The field value, expressed as a String.
+paStringValue :: Lens' ParameterAttribute Text
+paStringValue = lens _paStringValue (\s a -> s { _paStringValue = a })
+
+instance FromJSON ParameterAttribute where
+    parseJSON = withObject "ParameterAttribute" $ \o -> ParameterAttribute
+        <$> o .:  "key"
+        <*> o .:  "stringValue"
+
+instance ToJSON ParameterAttribute where
+    toJSON ParameterAttribute{..} = object
+        [ "key"         .= _paKey
+        , "stringValue" .= _paStringValue
+        ]
+
 data Operator = Operator
     { _oType   :: Maybe OperatorType
     , _oValues :: List "values" Text
@@ -315,7 +452,7 @@
 instance FromJSON Operator where
     parseJSON = withObject "Operator" $ \o -> Operator
         <$> o .:? "type"
-        <*> o .:  "values"
+        <*> o .:? "values" .!= mempty
 
 instance ToJSON Operator where
     toJSON Operator{..} = object
@@ -372,7 +509,7 @@
 instance FromJSON TaskObject where
     parseJSON = withObject "TaskObject" $ \o -> TaskObject
         <$> o .:? "attemptId"
-        <*> o .:  "objects"
+        <*> o .:? "objects" .!= mempty
         <*> o .:? "pipelineId"
         <*> o .:? "taskId"
 
@@ -413,7 +550,7 @@
 
 instance FromJSON ValidationError where
     parseJSON = withObject "ValidationError" $ \o -> ValidationError
-        <$> o .:  "errors"
+        <$> o .:? "errors" .!= mempty
         <*> o .:? "id"
 
 instance ToJSON ValidationError where
@@ -472,7 +609,7 @@
 instance FromJSON PipelineDescription where
     parseJSON = withObject "PipelineDescription" $ \o -> PipelineDescription
         <$> o .:? "description"
-        <*> o .:  "fields"
+        <*> o .:? "fields" .!= mempty
         <*> o .:  "name"
         <*> o .:  "pipelineId"
 
@@ -553,7 +690,7 @@
 
 instance FromJSON Query where
     parseJSON = withObject "Query" $ \o -> Query
-        <$> o .:  "selectors"
+        <$> o .:? "selectors" .!= mempty
 
 instance ToJSON Query where
     toJSON Query{..} = object
@@ -699,7 +836,7 @@
 instance FromJSON ValidationWarning where
     parseJSON = withObject "ValidationWarning" $ \o -> ValidationWarning
         <$> o .:? "id"
-        <*> o .:  "warnings"
+        <*> o .:? "warnings" .!= mempty
 
 instance ToJSON ValidationWarning where
     toJSON ValidationWarning{..} = object
diff --git a/gen/Network/AWS/DataPipeline/ValidatePipelineDefinition.hs b/gen/Network/AWS/DataPipeline/ValidatePipelineDefinition.hs
--- a/gen/Network/AWS/DataPipeline/ValidatePipelineDefinition.hs
+++ b/gen/Network/AWS/DataPipeline/ValidatePipelineDefinition.hs
@@ -33,6 +33,8 @@
     -- ** Request constructor
     , validatePipelineDefinition
     -- ** Request lenses
+    , vpdParameterObjects
+    , vpdParameterValues
     , vpdPipelineId
     , vpdPipelineObjects
 
@@ -52,14 +54,20 @@
 import qualified GHC.Exts
 
 data ValidatePipelineDefinition = ValidatePipelineDefinition
-    { _vpdPipelineId      :: Text
-    , _vpdPipelineObjects :: List "pipelineObjects" PipelineObject
+    { _vpdParameterObjects :: List "parameterObjects" ParameterObject
+    , _vpdParameterValues  :: List "parameterValues" ParameterValue
+    , _vpdPipelineId       :: Text
+    , _vpdPipelineObjects  :: List "pipelineObjects" PipelineObject
     } deriving (Eq, Show)
 
 -- | 'ValidatePipelineDefinition' constructor.
 --
 -- The fields accessible through corresponding lenses are:
 --
+-- * 'vpdParameterObjects' @::@ ['ParameterObject']
+--
+-- * 'vpdParameterValues' @::@ ['ParameterValue']
+--
 -- * 'vpdPipelineId' @::@ 'Text'
 --
 -- * 'vpdPipelineObjects' @::@ ['PipelineObject']
@@ -67,10 +75,24 @@
 validatePipelineDefinition :: Text -- ^ 'vpdPipelineId'
                            -> ValidatePipelineDefinition
 validatePipelineDefinition p1 = ValidatePipelineDefinition
-    { _vpdPipelineId      = p1
-    , _vpdPipelineObjects = mempty
+    { _vpdPipelineId       = p1
+    , _vpdPipelineObjects  = mempty
+    , _vpdParameterObjects = mempty
+    , _vpdParameterValues  = mempty
     }
 
+-- | A list of parameter objects used with the pipeline.
+vpdParameterObjects :: Lens' ValidatePipelineDefinition [ParameterObject]
+vpdParameterObjects =
+    lens _vpdParameterObjects (\s a -> s { _vpdParameterObjects = a })
+        . _List
+
+-- | A list of parameter values used with the pipeline.
+vpdParameterValues :: Lens' ValidatePipelineDefinition [ParameterValue]
+vpdParameterValues =
+    lens _vpdParameterValues (\s a -> s { _vpdParameterValues = a })
+        . _List
+
 -- | Identifies the pipeline whose definition is to be validated.
 vpdPipelineId :: Lens' ValidatePipelineDefinition Text
 vpdPipelineId = lens _vpdPipelineId (\s a -> s { _vpdPipelineId = a })
@@ -132,8 +154,10 @@
 
 instance ToJSON ValidatePipelineDefinition where
     toJSON ValidatePipelineDefinition{..} = object
-        [ "pipelineId"      .= _vpdPipelineId
-        , "pipelineObjects" .= _vpdPipelineObjects
+        [ "pipelineId"       .= _vpdPipelineId
+        , "pipelineObjects"  .= _vpdPipelineObjects
+        , "parameterObjects" .= _vpdParameterObjects
+        , "parameterValues"  .= _vpdParameterValues
         ]
 
 instance AWSRequest ValidatePipelineDefinition where
@@ -146,5 +170,5 @@
 instance FromJSON ValidatePipelineDefinitionResponse where
     parseJSON = withObject "ValidatePipelineDefinitionResponse" $ \o -> ValidatePipelineDefinitionResponse
         <$> o .:  "errored"
-        <*> o .:  "validationErrors"
-        <*> o .:  "validationWarnings"
+        <*> o .:? "validationErrors" .!= mempty
+        <*> o .:? "validationWarnings" .!= mempty
