amazonka-ds-1.4.1: gen/Network/AWS/DirectoryService/DescribeConditionalForwarders.hs
{-# 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 #-}
-- Derived from AWS service descriptions, licensed under Apache 2.0.
-- |
-- Module : Network.AWS.DirectoryService.DescribeConditionalForwarders
-- Copyright : (c) 2013-2016 Brendan Hay
-- License : Mozilla Public License, v. 2.0.
-- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>
-- Stability : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Obtains information about the conditional forwarders for this account.
--
-- If no input parameters are provided for RemoteDomainNames, this request
-- describes all conditional forwarders for the specified directory ID.
module Network.AWS.DirectoryService.DescribeConditionalForwarders
(
-- * Creating a Request
describeConditionalForwarders
, DescribeConditionalForwarders
-- * Request Lenses
, dcfRemoteDomainNames
, dcfDirectoryId
-- * Destructuring the Response
, describeConditionalForwardersResponse
, DescribeConditionalForwardersResponse
-- * Response Lenses
, dcfrsConditionalForwarders
, dcfrsResponseStatus
) where
import Network.AWS.DirectoryService.Types
import Network.AWS.DirectoryService.Types.Product
import Network.AWS.Lens
import Network.AWS.Prelude
import Network.AWS.Request
import Network.AWS.Response
-- | /See:/ 'describeConditionalForwarders' smart constructor.
data DescribeConditionalForwarders = DescribeConditionalForwarders'
{ _dcfRemoteDomainNames :: !(Maybe [Text])
, _dcfDirectoryId :: !Text
} deriving (Eq,Read,Show,Data,Typeable,Generic)
-- | Creates a value of 'DescribeConditionalForwarders' with the minimum fields required to make a request.
--
-- Use one of the following lenses to modify other fields as desired:
--
-- * 'dcfRemoteDomainNames'
--
-- * 'dcfDirectoryId'
describeConditionalForwarders
:: Text -- ^ 'dcfDirectoryId'
-> DescribeConditionalForwarders
describeConditionalForwarders pDirectoryId_ =
DescribeConditionalForwarders'
{ _dcfRemoteDomainNames = Nothing
, _dcfDirectoryId = pDirectoryId_
}
-- | The fully qualified domain names (FQDN) of the remote domains for which
-- to get the list of associated conditional forwarders. If this member is
-- null, all conditional forwarders are returned.
dcfRemoteDomainNames :: Lens' DescribeConditionalForwarders [Text]
dcfRemoteDomainNames = lens _dcfRemoteDomainNames (\ s a -> s{_dcfRemoteDomainNames = a}) . _Default . _Coerce;
-- | The directory ID for which to get the list of associated conditional
-- forwarders.
dcfDirectoryId :: Lens' DescribeConditionalForwarders Text
dcfDirectoryId = lens _dcfDirectoryId (\ s a -> s{_dcfDirectoryId = a});
instance AWSRequest DescribeConditionalForwarders
where
type Rs DescribeConditionalForwarders =
DescribeConditionalForwardersResponse
request = postJSON directoryService
response
= receiveJSON
(\ s h x ->
DescribeConditionalForwardersResponse' <$>
(x .?> "ConditionalForwarders" .!@ mempty) <*>
(pure (fromEnum s)))
instance Hashable DescribeConditionalForwarders
instance NFData DescribeConditionalForwarders
instance ToHeaders DescribeConditionalForwarders
where
toHeaders
= const
(mconcat
["X-Amz-Target" =#
("DirectoryService_20150416.DescribeConditionalForwarders"
:: ByteString),
"Content-Type" =#
("application/x-amz-json-1.1" :: ByteString)])
instance ToJSON DescribeConditionalForwarders where
toJSON DescribeConditionalForwarders'{..}
= object
(catMaybes
[("RemoteDomainNames" .=) <$> _dcfRemoteDomainNames,
Just ("DirectoryId" .= _dcfDirectoryId)])
instance ToPath DescribeConditionalForwarders where
toPath = const "/"
instance ToQuery DescribeConditionalForwarders where
toQuery = const mempty
-- | /See:/ 'describeConditionalForwardersResponse' smart constructor.
data DescribeConditionalForwardersResponse = DescribeConditionalForwardersResponse'
{ _dcfrsConditionalForwarders :: !(Maybe [ConditionalForwarder])
, _dcfrsResponseStatus :: !Int
} deriving (Eq,Read,Show,Data,Typeable,Generic)
-- | Creates a value of 'DescribeConditionalForwardersResponse' with the minimum fields required to make a request.
--
-- Use one of the following lenses to modify other fields as desired:
--
-- * 'dcfrsConditionalForwarders'
--
-- * 'dcfrsResponseStatus'
describeConditionalForwardersResponse
:: Int -- ^ 'dcfrsResponseStatus'
-> DescribeConditionalForwardersResponse
describeConditionalForwardersResponse pResponseStatus_ =
DescribeConditionalForwardersResponse'
{ _dcfrsConditionalForwarders = Nothing
, _dcfrsResponseStatus = pResponseStatus_
}
-- | The list of conditional forwarders that have been created.
dcfrsConditionalForwarders :: Lens' DescribeConditionalForwardersResponse [ConditionalForwarder]
dcfrsConditionalForwarders = lens _dcfrsConditionalForwarders (\ s a -> s{_dcfrsConditionalForwarders = a}) . _Default . _Coerce;
-- | The response status code.
dcfrsResponseStatus :: Lens' DescribeConditionalForwardersResponse Int
dcfrsResponseStatus = lens _dcfrsResponseStatus (\ s a -> s{_dcfrsResponseStatus = a});
instance NFData DescribeConditionalForwardersResponse