amazonka-datapipeline-0.0.0: gen/Network/AWS/DataPipeline/DescribeObjects.hs
{-# LANGUAGE DataKinds #-}
{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE GeneralizedNewtypeDeriving #-}
{-# LANGUAGE LambdaCase #-}
{-# LANGUAGE NoImplicitPrelude #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE TypeFamilies #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
-- Module : Network.AWS.DataPipeline.DescribeObjects
-- 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)
-- | Returns the object definitions for a set of objects associated with the
-- pipeline. Object definitions are composed of a set of fields that define
-- the properties of the object.
--
-- <http://docs.aws.amazon.com/datapipeline/latest/APIReference/API_DescribeObjects.html>
module Network.AWS.DataPipeline.DescribeObjects
(
-- * Request
DescribeObjects
-- ** Request constructor
, describeObjects
-- ** Request lenses
, doEvaluateExpressions
, doMarker
, doObjectIds
, doPipelineId
-- * Response
, DescribeObjectsResponse
-- ** Response constructor
, describeObjectsResponse
-- ** Response lenses
, dorHasMoreResults
, dorMarker
, dorPipelineObjects
) where
import Network.AWS.Prelude
import Network.AWS.Request.JSON
import Network.AWS.DataPipeline.Types
import qualified GHC.Exts
data DescribeObjects = DescribeObjects
{ _doEvaluateExpressions :: Maybe Bool
, _doMarker :: Maybe Text
, _doObjectIds :: List "pipelineIds" Text
, _doPipelineId :: Text
} deriving (Eq, Ord, Show)
-- | 'DescribeObjects' constructor.
--
-- The fields accessible through corresponding lenses are:
--
-- * 'doEvaluateExpressions' @::@ 'Maybe' 'Bool'
--
-- * 'doMarker' @::@ 'Maybe' 'Text'
--
-- * 'doObjectIds' @::@ ['Text']
--
-- * 'doPipelineId' @::@ 'Text'
--
describeObjects :: Text -- ^ 'doPipelineId'
-> DescribeObjects
describeObjects p1 = DescribeObjects
{ _doPipelineId = p1
, _doObjectIds = mempty
, _doEvaluateExpressions = Nothing
, _doMarker = Nothing
}
-- | Indicates whether any expressions in the object should be evaluated when
-- the object descriptions are returned.
doEvaluateExpressions :: Lens' DescribeObjects (Maybe Bool)
doEvaluateExpressions =
lens _doEvaluateExpressions (\s a -> s { _doEvaluateExpressions = a })
-- | The starting point for the results to be returned. The first time you
-- call DescribeObjects, this value should be empty. As long as the action
-- returns HasMoreResults as True, you can call DescribeObjects again and
-- pass the marker value from the response to retrieve the next set of
-- results.
doMarker :: Lens' DescribeObjects (Maybe Text)
doMarker = lens _doMarker (\s a -> s { _doMarker = a })
-- | Identifiers of the pipeline objects that contain the definitions to be
-- described. You can pass as many as 25 identifiers in a single call to
-- DescribeObjects.
doObjectIds :: Lens' DescribeObjects [Text]
doObjectIds = lens _doObjectIds (\s a -> s { _doObjectIds = a }) . _List
-- | Identifier of the pipeline that contains the object definitions.
doPipelineId :: Lens' DescribeObjects Text
doPipelineId = lens _doPipelineId (\s a -> s { _doPipelineId = a })
data DescribeObjectsResponse = DescribeObjectsResponse
{ _dorHasMoreResults :: Maybe Bool
, _dorMarker :: Maybe Text
, _dorPipelineObjects :: List "pipelineObjects" PipelineObject
} deriving (Eq, Show)
-- | 'DescribeObjectsResponse' constructor.
--
-- The fields accessible through corresponding lenses are:
--
-- * 'dorHasMoreResults' @::@ 'Maybe' 'Bool'
--
-- * 'dorMarker' @::@ 'Maybe' 'Text'
--
-- * 'dorPipelineObjects' @::@ ['PipelineObject']
--
describeObjectsResponse :: DescribeObjectsResponse
describeObjectsResponse = DescribeObjectsResponse
{ _dorPipelineObjects = mempty
, _dorMarker = Nothing
, _dorHasMoreResults = Nothing
}
-- | If True, there are more pages of results to return.
dorHasMoreResults :: Lens' DescribeObjectsResponse (Maybe Bool)
dorHasMoreResults =
lens _dorHasMoreResults (\s a -> s { _dorHasMoreResults = a })
-- | The starting point for the next page of results. To view the next page of
-- results, call DescribeObjects again with this marker value.
dorMarker :: Lens' DescribeObjectsResponse (Maybe Text)
dorMarker = lens _dorMarker (\s a -> s { _dorMarker = a })
-- | An array of object definitions that are returned by the call to
-- DescribeObjects.
dorPipelineObjects :: Lens' DescribeObjectsResponse [PipelineObject]
dorPipelineObjects =
lens _dorPipelineObjects (\s a -> s { _dorPipelineObjects = a })
. _List
instance ToPath DescribeObjects where
toPath = const "/"
instance ToQuery DescribeObjects where
toQuery = const mempty
instance ToHeaders DescribeObjects
instance ToJSON DescribeObjects where
toJSON DescribeObjects{..} = object
[ "pipelineId" .= _doPipelineId
, "objectIds" .= _doObjectIds
, "evaluateExpressions" .= _doEvaluateExpressions
, "marker" .= _doMarker
]
instance AWSRequest DescribeObjects where
type Sv DescribeObjects = DataPipeline
type Rs DescribeObjects = DescribeObjectsResponse
request = post "DescribeObjects"
response = jsonResponse
instance FromJSON DescribeObjectsResponse where
parseJSON = withObject "DescribeObjectsResponse" $ \o -> DescribeObjectsResponse
<$> o .:? "hasMoreResults"
<*> o .:? "marker"
<*> o .: "pipelineObjects"
instance AWSPager DescribeObjects where
page rq rs
| stop (rs ^. dorHasMoreResults) = Nothing
| otherwise = Just $ rq
& doMarker .~ rs ^. dorMarker