{-# 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 #-}
module Network.AWS.DMS.DescribeConnections
(
describeConnections
, DescribeConnections
, dcFilters
, dcMarker
, dcMaxRecords
, describeConnectionsResponse
, DescribeConnectionsResponse
, drsConnections
, drsMarker
, drsResponseStatus
) where
import Network.AWS.DMS.Types
import Network.AWS.DMS.Types.Product
import Network.AWS.Lens
import Network.AWS.Pager
import Network.AWS.Prelude
import Network.AWS.Request
import Network.AWS.Response
data DescribeConnections = DescribeConnections'
{ _dcFilters :: !(Maybe [Filter])
, _dcMarker :: !(Maybe Text)
, _dcMaxRecords :: !(Maybe Int)
} deriving (Eq, Read, Show, Data, Typeable, Generic)
describeConnections
:: DescribeConnections
describeConnections =
DescribeConnections'
{_dcFilters = Nothing, _dcMarker = Nothing, _dcMaxRecords = Nothing}
dcFilters :: Lens' DescribeConnections [Filter]
dcFilters = lens _dcFilters (\ s a -> s{_dcFilters = a}) . _Default . _Coerce
dcMarker :: Lens' DescribeConnections (Maybe Text)
dcMarker = lens _dcMarker (\ s a -> s{_dcMarker = a})
dcMaxRecords :: Lens' DescribeConnections (Maybe Int)
dcMaxRecords = lens _dcMaxRecords (\ s a -> s{_dcMaxRecords = a})
instance AWSPager DescribeConnections where
page rq rs
| stop (rs ^. drsMarker) = Nothing
| stop (rs ^. drsConnections) = Nothing
| otherwise = Just $ rq & dcMarker .~ rs ^. drsMarker
instance AWSRequest DescribeConnections where
type Rs DescribeConnections =
DescribeConnectionsResponse
request = postJSON dms
response
= receiveJSON
(\ s h x ->
DescribeConnectionsResponse' <$>
(x .?> "Connections" .!@ mempty) <*> (x .?> "Marker")
<*> (pure (fromEnum s)))
instance Hashable DescribeConnections where
instance NFData DescribeConnections where
instance ToHeaders DescribeConnections where
toHeaders
= const
(mconcat
["X-Amz-Target" =#
("AmazonDMSv20160101.DescribeConnections" ::
ByteString),
"Content-Type" =#
("application/x-amz-json-1.1" :: ByteString)])
instance ToJSON DescribeConnections where
toJSON DescribeConnections'{..}
= object
(catMaybes
[("Filters" .=) <$> _dcFilters,
("Marker" .=) <$> _dcMarker,
("MaxRecords" .=) <$> _dcMaxRecords])
instance ToPath DescribeConnections where
toPath = const "/"
instance ToQuery DescribeConnections where
toQuery = const mempty
data DescribeConnectionsResponse = DescribeConnectionsResponse'
{ _drsConnections :: !(Maybe [Connection])
, _drsMarker :: !(Maybe Text)
, _drsResponseStatus :: !Int
} deriving (Eq, Read, Show, Data, Typeable, Generic)
describeConnectionsResponse
:: Int
-> DescribeConnectionsResponse
describeConnectionsResponse pResponseStatus_ =
DescribeConnectionsResponse'
{ _drsConnections = Nothing
, _drsMarker = Nothing
, _drsResponseStatus = pResponseStatus_
}
drsConnections :: Lens' DescribeConnectionsResponse [Connection]
drsConnections = lens _drsConnections (\ s a -> s{_drsConnections = a}) . _Default . _Coerce
drsMarker :: Lens' DescribeConnectionsResponse (Maybe Text)
drsMarker = lens _drsMarker (\ s a -> s{_drsMarker = a})
drsResponseStatus :: Lens' DescribeConnectionsResponse Int
drsResponseStatus = lens _drsResponseStatus (\ s a -> s{_drsResponseStatus = a})
instance NFData DescribeConnectionsResponse where