{-# 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.DescribeEndpointTypes
(
describeEndpointTypes
, DescribeEndpointTypes
, detFilters
, detMarker
, detMaxRecords
, describeEndpointTypesResponse
, DescribeEndpointTypesResponse
, detrsSupportedEndpointTypes
, detrsMarker
, detrsResponseStatus
) 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 DescribeEndpointTypes = DescribeEndpointTypes'
{ _detFilters :: !(Maybe [Filter])
, _detMarker :: !(Maybe Text)
, _detMaxRecords :: !(Maybe Int)
} deriving (Eq, Read, Show, Data, Typeable, Generic)
describeEndpointTypes
:: DescribeEndpointTypes
describeEndpointTypes =
DescribeEndpointTypes'
{_detFilters = Nothing, _detMarker = Nothing, _detMaxRecords = Nothing}
detFilters :: Lens' DescribeEndpointTypes [Filter]
detFilters = lens _detFilters (\ s a -> s{_detFilters = a}) . _Default . _Coerce
detMarker :: Lens' DescribeEndpointTypes (Maybe Text)
detMarker = lens _detMarker (\ s a -> s{_detMarker = a})
detMaxRecords :: Lens' DescribeEndpointTypes (Maybe Int)
detMaxRecords = lens _detMaxRecords (\ s a -> s{_detMaxRecords = a})
instance AWSPager DescribeEndpointTypes where
page rq rs
| stop (rs ^. detrsMarker) = Nothing
| stop (rs ^. detrsSupportedEndpointTypes) = Nothing
| otherwise =
Just $ rq & detMarker .~ rs ^. detrsMarker
instance AWSRequest DescribeEndpointTypes where
type Rs DescribeEndpointTypes =
DescribeEndpointTypesResponse
request = postJSON dms
response
= receiveJSON
(\ s h x ->
DescribeEndpointTypesResponse' <$>
(x .?> "SupportedEndpointTypes" .!@ mempty) <*>
(x .?> "Marker")
<*> (pure (fromEnum s)))
instance Hashable DescribeEndpointTypes where
instance NFData DescribeEndpointTypes where
instance ToHeaders DescribeEndpointTypes where
toHeaders
= const
(mconcat
["X-Amz-Target" =#
("AmazonDMSv20160101.DescribeEndpointTypes" ::
ByteString),
"Content-Type" =#
("application/x-amz-json-1.1" :: ByteString)])
instance ToJSON DescribeEndpointTypes where
toJSON DescribeEndpointTypes'{..}
= object
(catMaybes
[("Filters" .=) <$> _detFilters,
("Marker" .=) <$> _detMarker,
("MaxRecords" .=) <$> _detMaxRecords])
instance ToPath DescribeEndpointTypes where
toPath = const "/"
instance ToQuery DescribeEndpointTypes where
toQuery = const mempty
data DescribeEndpointTypesResponse = DescribeEndpointTypesResponse'
{ _detrsSupportedEndpointTypes :: !(Maybe [SupportedEndpointType])
, _detrsMarker :: !(Maybe Text)
, _detrsResponseStatus :: !Int
} deriving (Eq, Read, Show, Data, Typeable, Generic)
describeEndpointTypesResponse
:: Int
-> DescribeEndpointTypesResponse
describeEndpointTypesResponse pResponseStatus_ =
DescribeEndpointTypesResponse'
{ _detrsSupportedEndpointTypes = Nothing
, _detrsMarker = Nothing
, _detrsResponseStatus = pResponseStatus_
}
detrsSupportedEndpointTypes :: Lens' DescribeEndpointTypesResponse [SupportedEndpointType]
detrsSupportedEndpointTypes = lens _detrsSupportedEndpointTypes (\ s a -> s{_detrsSupportedEndpointTypes = a}) . _Default . _Coerce
detrsMarker :: Lens' DescribeEndpointTypesResponse (Maybe Text)
detrsMarker = lens _detrsMarker (\ s a -> s{_detrsMarker = a})
detrsResponseStatus :: Lens' DescribeEndpointTypesResponse Int
detrsResponseStatus = lens _detrsResponseStatus (\ s a -> s{_detrsResponseStatus = a})
instance NFData DescribeEndpointTypesResponse where