{-# 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.DirectoryService.DescribeDomainControllers
(
describeDomainControllers
, DescribeDomainControllers
, ddcNextToken
, ddcDomainControllerIds
, ddcLimit
, ddcDirectoryId
, describeDomainControllersResponse
, DescribeDomainControllersResponse
, ddcrsNextToken
, ddcrsDomainControllers
, ddcrsResponseStatus
) where
import Network.AWS.DirectoryService.Types
import Network.AWS.DirectoryService.Types.Product
import Network.AWS.Lens
import Network.AWS.Pager
import Network.AWS.Prelude
import Network.AWS.Request
import Network.AWS.Response
data DescribeDomainControllers = DescribeDomainControllers'
{ _ddcNextToken :: !(Maybe Text)
, _ddcDomainControllerIds :: !(Maybe [Text])
, _ddcLimit :: !(Maybe Nat)
, _ddcDirectoryId :: !Text
} deriving (Eq, Read, Show, Data, Typeable, Generic)
describeDomainControllers
:: Text
-> DescribeDomainControllers
describeDomainControllers pDirectoryId_ =
DescribeDomainControllers'
{ _ddcNextToken = Nothing
, _ddcDomainControllerIds = Nothing
, _ddcLimit = Nothing
, _ddcDirectoryId = pDirectoryId_
}
ddcNextToken :: Lens' DescribeDomainControllers (Maybe Text)
ddcNextToken = lens _ddcNextToken (\ s a -> s{_ddcNextToken = a})
ddcDomainControllerIds :: Lens' DescribeDomainControllers [Text]
ddcDomainControllerIds = lens _ddcDomainControllerIds (\ s a -> s{_ddcDomainControllerIds = a}) . _Default . _Coerce
ddcLimit :: Lens' DescribeDomainControllers (Maybe Natural)
ddcLimit = lens _ddcLimit (\ s a -> s{_ddcLimit = a}) . mapping _Nat
ddcDirectoryId :: Lens' DescribeDomainControllers Text
ddcDirectoryId = lens _ddcDirectoryId (\ s a -> s{_ddcDirectoryId = a})
instance AWSPager DescribeDomainControllers where
page rq rs
| stop (rs ^. ddcrsNextToken) = Nothing
| stop (rs ^. ddcrsDomainControllers) = Nothing
| otherwise =
Just $ rq & ddcNextToken .~ rs ^. ddcrsNextToken
instance AWSRequest DescribeDomainControllers where
type Rs DescribeDomainControllers =
DescribeDomainControllersResponse
request = postJSON directoryService
response
= receiveJSON
(\ s h x ->
DescribeDomainControllersResponse' <$>
(x .?> "NextToken") <*>
(x .?> "DomainControllers" .!@ mempty)
<*> (pure (fromEnum s)))
instance Hashable DescribeDomainControllers where
instance NFData DescribeDomainControllers where
instance ToHeaders DescribeDomainControllers where
toHeaders
= const
(mconcat
["X-Amz-Target" =#
("DirectoryService_20150416.DescribeDomainControllers"
:: ByteString),
"Content-Type" =#
("application/x-amz-json-1.1" :: ByteString)])
instance ToJSON DescribeDomainControllers where
toJSON DescribeDomainControllers'{..}
= object
(catMaybes
[("NextToken" .=) <$> _ddcNextToken,
("DomainControllerIds" .=) <$>
_ddcDomainControllerIds,
("Limit" .=) <$> _ddcLimit,
Just ("DirectoryId" .= _ddcDirectoryId)])
instance ToPath DescribeDomainControllers where
toPath = const "/"
instance ToQuery DescribeDomainControllers where
toQuery = const mempty
data DescribeDomainControllersResponse = DescribeDomainControllersResponse'
{ _ddcrsNextToken :: !(Maybe Text)
, _ddcrsDomainControllers :: !(Maybe [DomainController])
, _ddcrsResponseStatus :: !Int
} deriving (Eq, Read, Show, Data, Typeable, Generic)
describeDomainControllersResponse
:: Int
-> DescribeDomainControllersResponse
describeDomainControllersResponse pResponseStatus_ =
DescribeDomainControllersResponse'
{ _ddcrsNextToken = Nothing
, _ddcrsDomainControllers = Nothing
, _ddcrsResponseStatus = pResponseStatus_
}
ddcrsNextToken :: Lens' DescribeDomainControllersResponse (Maybe Text)
ddcrsNextToken = lens _ddcrsNextToken (\ s a -> s{_ddcrsNextToken = a})
ddcrsDomainControllers :: Lens' DescribeDomainControllersResponse [DomainController]
ddcrsDomainControllers = lens _ddcrsDomainControllers (\ s a -> s{_ddcrsDomainControllers = a}) . _Default . _Coerce
ddcrsResponseStatus :: Lens' DescribeDomainControllersResponse Int
ddcrsResponseStatus = lens _ddcrsResponseStatus (\ s a -> s{_ddcrsResponseStatus = a})
instance NFData DescribeDomainControllersResponse
where