module Network.AWS.CloudTrail.DescribeTrails
(
DescribeTrails
, describeTrails
, dtTrailNameList
, DescribeTrailsResponse
, describeTrailsResponse
, dtrTrailList
) where
import Network.AWS.Prelude
import Network.AWS.Request.JSON
import Network.AWS.CloudTrail.Types
import qualified GHC.Exts
newtype DescribeTrails = DescribeTrails
{ _dtTrailNameList :: List "trailNameList" Text
} deriving (Eq, Ord, Show, Monoid, Semigroup)
instance GHC.Exts.IsList DescribeTrails where
type Item DescribeTrails = Text
fromList = DescribeTrails . GHC.Exts.fromList
toList = GHC.Exts.toList . _dtTrailNameList
describeTrails :: DescribeTrails
describeTrails = DescribeTrails
{ _dtTrailNameList = mempty
}
dtTrailNameList :: Lens' DescribeTrails [Text]
dtTrailNameList = lens _dtTrailNameList (\s a -> s { _dtTrailNameList = a }) . _List
newtype DescribeTrailsResponse = DescribeTrailsResponse
{ _dtrTrailList :: List "trailList" Trail
} deriving (Eq, Show, Monoid, Semigroup)
instance GHC.Exts.IsList DescribeTrailsResponse where
type Item DescribeTrailsResponse = Trail
fromList = DescribeTrailsResponse . GHC.Exts.fromList
toList = GHC.Exts.toList . _dtrTrailList
describeTrailsResponse :: DescribeTrailsResponse
describeTrailsResponse = DescribeTrailsResponse
{ _dtrTrailList = mempty
}
dtrTrailList :: Lens' DescribeTrailsResponse [Trail]
dtrTrailList = lens _dtrTrailList (\s a -> s { _dtrTrailList = a }) . _List
instance ToPath DescribeTrails where
toPath = const "/"
instance ToQuery DescribeTrails where
toQuery = const mempty
instance ToHeaders DescribeTrails
instance ToJSON DescribeTrails where
toJSON DescribeTrails{..} = object
[ "trailNameList" .= _dtTrailNameList
]
instance AWSRequest DescribeTrails where
type Sv DescribeTrails = CloudTrail
type Rs DescribeTrails = DescribeTrailsResponse
request = post "DescribeTrails"
response = jsonResponse
instance FromJSON DescribeTrailsResponse where
parseJSON = withObject "DescribeTrailsResponse" $ \o -> DescribeTrailsResponse
<$> o .: "trailList"